Example usage for com.itextpdf.text.pdf PdfLayer addChild

List of usage examples for com.itextpdf.text.pdf PdfLayer addChild

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfLayer addChild.

Prototype

public void addChild(PdfLayer child) 

Source Link

Document

Adds a child layer.

Usage

From source file:org.orbisgis.core_export.GeoSpatialPDF.java

License:Open Source License

/**
 * Process all layers in the layermodel and build the corresponding pdf tree
 * layer/*from  w ww .  jav a 2 s  .c  o m*/
 *
 * @param layer
 */
private void processSubLayer(ILayer layer, MapTransform mt, PdfWriter writer, PdfContentByte cb,
        ProgressMonitor pm, PdfLayer mainLayer) {
    if (layer.acceptsChilds() && layer.getLayerCount() > 0) {
        PdfLayer groupLayer = new PdfLayer(layer.getName(), writer);
        //To manage group of layers
        for (ILayer subLayer : layer.getChildren()) {
            processSubLayer(subLayer, mt, writer, cb, pm, groupLayer);
        }

    } else {
        if (layer.isVisible() && layer.getEnvelope().intersects(mt.getAdjustedExtent())) {
            PdfLayer mapLayer = new PdfLayer(layer.getName(), writer);
            if (mainLayer != null) {
                mainLayer.addChild(mapLayer);
            }
            PdfTemplate layerTemplate = cb.createTemplate(width, height);
            Graphics2D g2dLayer = layerTemplate.createGraphics(width, height);
            cb.beginLayer(mapLayer);
            PdfRenderer renderer2 = new PdfRenderer(layerTemplate, width, height);
            renderer2.draw(mt, g2dLayer, (int) width, (int) height, layer, pm);
            cb.addTemplate(layerTemplate, 0, 0);
            g2dLayer.dispose();
            cb.endLayer();
        }
    }
}