Example usage for com.lowagie.text.pdf PdfGState setStrokeOpacity

List of usage examples for com.lowagie.text.pdf PdfGState setStrokeOpacity

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfGState setStrokeOpacity.

Prototype

public void setStrokeOpacity(float n) 

Source Link

Document

Sets the current stroking alpha constant, specifying the constant shape or constant opacity value to be used for stroking operations in the transparent imaging model.

Usage

From source file:com.ikon.util.PDFUtils.java

License:Open Source License

public static void stampImage(InputStream input, byte[] image, int layer, float opacity, String exprX,
        String exprY, OutputStream output)
        throws FileNotFoundException, DocumentException, EvalError, IOException {
    log.debug("stampImage({}, {}, {}, {}, {}, {}, {})", new Object[] { input, image, Integer.valueOf(layer),
            Float.valueOf(opacity), exprX, exprY, output });
    Image img = Image.getInstance(image);
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, output);
    PdfGState gs = new PdfGState();
    gs.setFillOpacity(opacity);//from w ww.  j a v  a2s  .co  m
    gs.setStrokeOpacity(opacity);
    int numPages = reader.getNumberOfPages();
    int count = 0;

    while (count++ < numPages) {
        int pageCenter = (int) reader.getPageSizeWithRotation(count).getWidth() / 2;
        int pageMiddle = (int) reader.getPageSizeWithRotation(count).getHeight() / 2;

        Interpreter i = new Interpreter();
        i.set("IMAGE_WIDTH", (int) img.getWidth());
        i.set("IMAGE_HEIGHT", (int) img.getHeight());
        i.set("PAGE_WIDTH", (int) reader.getPageSizeWithRotation(count).getWidth());
        i.set("PAGE_HEIGHT", (int) reader.getPageSizeWithRotation(count).getHeight());
        i.set("PAGE_CENTER", pageCenter);
        i.set("PAGE_MIDDLE", pageMiddle);
        Integer evalX = (Integer) i.eval(exprX);
        Integer evalY = (Integer) i.eval(exprY);

        if (evalX == null)
            evalX = Integer.valueOf(pageCenter);
        if (evalY == null) {
            evalY = Integer.valueOf(pageMiddle);
        }
        log.debug("evalX: {}", evalX);
        log.debug("evalY: {}", evalY);

        img.setAbsolutePosition(evalX.intValue(), evalY.intValue());
        PdfContentByte cb = null;

        if (layer == LAYER_UNDER_CONTENT)
            cb = stamper.getUnderContent(count);
        else if (layer == LAYER_OVER_CONTENT)
            cb = stamper.getOverContent(count);
        else {
            throw new IllegalArgumentException();
        }

        cb.saveState();
        cb.setGState(gs);
        cb.addImage(img);
        cb.restoreState();
    }

    stamper.close();
}

From source file:com.ikon.util.PDFUtils.java

License:Open Source License

public static void stampText(InputStream input, String text, int layer, float opacity, int size, Color color,
        int rotation, int align, String exprX, String exprY, OutputStream output)
        throws FileNotFoundException, DocumentException, EvalError, IOException {
    log.debug("stampText({}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {})",
            new Object[] { input, text, Integer.valueOf(layer), Float.valueOf(opacity), Integer.valueOf(size),
                    color, Integer.valueOf(rotation), Integer.valueOf(align), exprX, exprY, output });

    BaseFont bf = getBaseFont();/*  www .  j  a v a  2  s.co m*/
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, output);
    PdfGState gs = new PdfGState();
    gs.setFillOpacity(opacity);
    gs.setStrokeOpacity(opacity);
    int numPages = reader.getNumberOfPages();
    int count = 0;

    while (count++ < numPages) {
        int pageCenter = (int) reader.getPageSizeWithRotation(count).getWidth() / 2;
        int pageMiddle = (int) reader.getPageSizeWithRotation(count).getHeight() / 2;

        Interpreter i = new Interpreter();
        i.set("PAGE_WIDTH", (int) reader.getPageSizeWithRotation(count).getWidth());
        i.set("PAGE_HEIGHT", (int) reader.getPageSizeWithRotation(count).getHeight());
        i.set("PAGE_CENTER", pageCenter);
        i.set("PAGE_MIDDLE", pageMiddle);
        Integer evalX = (Integer) i.eval(exprX);
        Integer evalY = (Integer) i.eval(exprY);

        if (evalX == null)
            evalX = Integer.valueOf(pageCenter);
        if (evalY == null) {
            evalY = Integer.valueOf(pageMiddle);
        }
        log.debug("evalX: {}", evalX);
        log.debug("evalY: {}", evalY);

        PdfContentByte cb = null;

        if (layer == LAYER_UNDER_CONTENT)
            cb = stamper.getUnderContent(count);
        else if (layer == LAYER_OVER_CONTENT)
            cb = stamper.getOverContent(count);
        else {
            throw new IllegalArgumentException();
        }

        cb.saveState();
        cb.setColorFill(color);
        cb.setGState(gs);
        cb.beginText();
        cb.setFontAndSize(bf, size);
        cb.showTextAligned(align, text, evalX.intValue(), evalY.intValue(), rotation);
        cb.endText();
        cb.restoreState();
    }

    stamper.close();
    reader.close();
}

From source file:org.geomajas.plugin.print.component.PdfContext.java

License:Open Source License

private void setStroke(Color color, float linewidth, float[] dashArray) {
    // Color and transparency
    PdfGState state = new PdfGState();
    state.setStrokeOpacity(color.getAlpha());
    state.setBlendMode(PdfGState.BM_NORMAL);
    template.setGState(state);//from w  ww .  jav  a 2s  .com
    template.setColorStroke(color);
    // linewidth
    template.setLineWidth(linewidth);
    if (dashArray != null) {
        template.setLineDash(dashArray, 0f);
    }
}

From source file:org.mapfish.print.map.readers.ImageMapReader.java

License:Open Source License

public void render(final Transformer transformer, ParallelMapTileLoader parallelMapTileLoader, String srs,
        boolean first) {
    LOGGER.debug(baseUrl);//from  w ww. j av  a  2 s  . com

    parallelMapTileLoader.addTileToLoad(new MapTileTask() {
        public Image image;

        public void readTile() throws DocumentException {
            image = PDFUtils.createImage(context, extentMaxX - extentMinX, extentMaxY - extentMinY, baseUrl, 0);
            image.setAbsolutePosition(extentMinX, extentMinY);
        }

        public void renderOnPdf(PdfContentByte dc) throws DocumentException {
            //add the image using a geo->paper transformer
            final AffineTransform geoTransform = transformer.getGeoTransform(false);
            dc.transform(geoTransform);
            if (opacity < 1.0) {
                PdfGState gs = new PdfGState();
                gs.setFillOpacity(opacity);
                gs.setStrokeOpacity(opacity);
                dc.setGState(gs);
            }
            dc.addImage(image);
        }
    });
}

From source file:org.mapfish.print.map.renderers.BitmapMapRenderer.java

License:Open Source License

public void render(Transformer transformer, List<URI> uris, PdfContentByte dc, RenderingContext context,
        float opacity, int nbTilesHorizontal, float offsetX, float offsetY, long bitmapTileW, long bitmapTileH)
        throws IOException {
    dc.saveState();/*from ww w. j  ava  2 s. c  o  m*/
    try {
        final AffineTransform bitmapTransformer = transformer.getBitmapTransform();
        dc.transform(bitmapTransformer);
        final double rotation = transformer.getRotation();

        for (int i = 0; i < uris.size(); i++) {
            URI uri = uris.get(i);
            if (uri == null) {
                continue;
            }

            final int line = i / nbTilesHorizontal;
            final int col = i % nbTilesHorizontal;
            final float posX = 0 - offsetX + col * bitmapTileW;
            final float posY = 0 - offsetY + line * bitmapTileH;

            if (rotation != 0.0
                    && !isTileVisible(posX, posY, bitmapTileW, bitmapTileH, bitmapTransformer, transformer)) {
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("Not needed: " + uri);
                }
                continue;
            }

            LOGGER.debug(uri);
            final Image map = PDFUtils.getImage(context, uri, bitmapTileW, bitmapTileH);
            map.setAbsolutePosition(posX, posY);

            if (opacity < 1.0) {
                PdfGState gs = new PdfGState();
                gs.setFillOpacity(opacity);
                gs.setStrokeOpacity(opacity);
                dc.setGState(gs);
            }
            dc.addImage(map);
        }
    } catch (DocumentException e) {
        context.addError(e);
    } finally {
        dc.restoreState();
    }
}

From source file:org.mapfish.print.map.renderers.BitmapTileRenderer.java

License:Open Source License

public void render(Transformer transformer, List<URI> uris, ParallelMapTileLoader parallelMapTileLoader,
        final RenderingContext context, final float opacity, int nbTilesHorizontal, float offsetX,
        float offsetY, final long bitmapTileW, final long bitmapTileH) throws IOException {
    final AffineTransform bitmapTransformer = transformer.getBitmapTransform();
    final double rotation = transformer.getRotation();

    for (int i = 0; i < uris.size(); i++) {
        final URI uri = uris.get(i);
        if (uri == null) {
            continue;
        }/*from ww w  .  j  a va  2 s  . c o m*/

        final int line = i / nbTilesHorizontal;
        final int col = i % nbTilesHorizontal;
        final float posX = 0 - offsetX + col * bitmapTileW;
        final float posY = 0 - offsetY + line * bitmapTileH;

        if (rotation != 0.0
                && !isTileVisible(posX, posY, bitmapTileW, bitmapTileH, bitmapTransformer, transformer)) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Not needed: " + uri);
            }
            continue;
        }

        parallelMapTileLoader.addTileToLoad(new MapTileTask() {
            public Image map;

            protected void readTile() throws IOException, DocumentException {
                map = PDFUtils.getImage(context, uri, bitmapTileW, bitmapTileH);
                map.setAbsolutePosition(posX, posY);
            }

            protected void renderOnPdf(PdfContentByte dc) throws DocumentException {
                dc.transform(bitmapTransformer);
                if (opacity < 1.0) {
                    PdfGState gs = new PdfGState();
                    gs.setFillOpacity(opacity);
                    gs.setStrokeOpacity(opacity);
                    dc.setGState(gs);
                }
                dc.addImage(map);
            }
        });
    }
}

From source file:org.mapfish.print.map.renderers.PDFMapRenderer.java

License:Open Source License

public void render(Transformer transformer, List<URI> uris, PdfContentByte dc, RenderingContext context,
        float opacity, int nbTilesHorizontal, float offsetX, float offsetY, long bitmapTileW, long bitmapTileH)
        throws IOException {
    if (uris.size() != 1) {
        //tiling not supported in PDF
        throw new InvalidValueException("format", "application/x-pdf");
    }/*from  ww w .j  av a  2  s  .c  om*/
    final URI uri = uris.get(0);
    LOGGER.debug(uri);
    PdfReader reader = new PdfReader(uri.toURL());
    PdfImportedPage pdfMap = context.getWriter().getImportedPage(reader, 1);

    if (opacity < 1.0) {
        PdfGState gs = new PdfGState();
        gs.setFillOpacity(opacity);
        gs.setStrokeOpacity(opacity);
        //gs.setBlendMode(PdfGState.BM_SOFTLIGHT);
        pdfMap.setGState(gs);
    }

    dc.saveState();
    try {
        dc.transform(transformer.getPdfTransform());
        dc.addTemplate(pdfMap, 0, 0);
    } finally {
        dc.restoreState();
    }
}

From source file:org.mapfish.print.map.renderers.PDFTileRenderer.java

License:Open Source License

public void render(final Transformer transformer, List<URI> uris, ParallelMapTileLoader parallelMapTileLoader,
        final RenderingContext context, final float opacity, int nbTilesHorizontal, float offsetX,
        float offsetY, long bitmapTileW, long bitmapTileH) throws IOException {
    if (uris.size() != 1) {
        //tiling not supported in PDF
        throw new InvalidValueException("format", "application/x-pdf");
    }/*from w  w w .java  2  s  . c om*/
    final URI uri = uris.get(0);

    parallelMapTileLoader.addTileToLoad(new MapTileTask() {
        public PdfImportedPage pdfMap;

        protected void readTile() throws IOException, DocumentException {
            LOGGER.debug(uri);
            PdfReader reader = new PdfReader(uri.toURL());
            synchronized (context.getPdfLock()) {
                pdfMap = context.getWriter().getImportedPage(reader, 1);

                if (opacity < 1.0) {
                    PdfGState gs = new PdfGState();
                    gs.setFillOpacity(opacity);
                    gs.setStrokeOpacity(opacity);
                    //gs.setBlendMode(PdfGState.BM_SOFTLIGHT);
                    pdfMap.setGState(gs);
                }
            }
        }

        protected void renderOnPdf(PdfContentByte dc) throws DocumentException {
            dc.transform(transformer.getPdfTransform());
            dc.addTemplate(pdfMap, 0, 0);
        }
    });
}

From source file:org.mapfish.print.map.renderers.SVGMapRenderer.java

License:Open Source License

public void render(Transformer transformer, java.util.List<URI> uris, PdfContentByte dc,
        RenderingContext context, float opacity, int nbTilesHorizontal, float offsetX, float offsetY,
        long bitmapTileW, long bitmapTileH) throws IOException {
    if (uris.size() != 1) {
        //tiling not supported in SVG
        throw new InvalidValueException("format", "application/x-pdf");
    }/*  w  ww.ja  v a  2 s  . c om*/

    dc.saveState();
    try {
        dc.transform(transformer.getSvgTransform());

        if (opacity < 1.0) {
            PdfGState gs = new PdfGState();
            gs.setFillOpacity(opacity);
            gs.setStrokeOpacity(opacity);
            //gs.setBlendMode(PdfGState.BM_SOFTLIGHT);
            dc.setGState(gs);
        }

        Graphics2D g2 = dc.createGraphics(transformer.getRotatedSvgW(), transformer.getRotatedSvgH());

        //avoid a warning from Batik
        System.setProperty("org.apache.batik.warn_destination", "false");
        g2.setRenderingHint(RenderingHintsKeyExt.KEY_TRANSCODING,
                RenderingHintsKeyExt.VALUE_TRANSCODING_PRINTING);
        g2.setRenderingHint(RenderingHintsKeyExt.KEY_AVOID_TILE_PAINTING,
                RenderingHintsKeyExt.VALUE_AVOID_TILE_PAINTING_ON);

        final URI uri = uris.get(0);
        LOGGER.debug(uri);
        final TranscoderInput ti = getTranscoderInput(uri.toURL(), transformer, context);
        if (ti != null) {
            PrintTranscoder pt = new PrintTranscoder();
            pt.transcode(ti, null);
            Paper paper = new Paper();
            paper.setSize(transformer.getRotatedSvgW(), transformer.getRotatedSvgH());
            paper.setImageableArea(0, 0, transformer.getRotatedSvgW(), transformer.getRotatedSvgH());
            PageFormat pf = new PageFormat();
            pf.setPaper(paper);
            pt.print(g2, pf, 0);
        }

        g2.dispose();
    } finally {
        dc.restoreState();
    }

}

From source file:org.mapfish.print.map.renderers.SVGTileRenderer.java

License:Open Source License

public void render(final Transformer transformer, java.util.List<URI> uris,
        ParallelMapTileLoader parallelMapTileLoader, final RenderingContext context, final float opacity,
        int nbTilesHorizontal, float offsetX, float offsetY, long bitmapTileW, long bitmapTileH)
        throws IOException {
    if (uris.size() != 1) {
        //tiling not supported in SVG
        throw new InvalidValueException("format", "application/x-pdf");
    }/* w  w  w  .j a v  a  2s.c  o  m*/

    final URI uri = uris.get(0);

    parallelMapTileLoader.addTileToLoad(new MapTileTask() {
        public PrintTranscoder pt;

        @Override
        protected void readTile() throws IOException, DocumentException {
            LOGGER.debug(uri);
            final TranscoderInput ti = getTranscoderInput(uri.toURL(), transformer, context);
            if (ti != null) {
                pt = new PrintTranscoder();
                pt.transcode(ti, null);
            }
        }

        @Override
        protected void renderOnPdf(PdfContentByte dc) throws DocumentException {
            dc.transform(transformer.getSvgTransform());

            if (opacity < 1.0) {
                PdfGState gs = new PdfGState();
                gs.setFillOpacity(opacity);
                gs.setStrokeOpacity(opacity);
                //gs.setBlendMode(PdfGState.BM_SOFTLIGHT);
                dc.setGState(gs);
            }

            Graphics2D g2 = dc.createGraphics(transformer.getRotatedSvgW(), transformer.getRotatedSvgH());

            //avoid a warning from Batik
            System.setProperty("org.apache.batik.warn_destination", "false");
            g2.setRenderingHint(RenderingHintsKeyExt.KEY_TRANSCODING,
                    RenderingHintsKeyExt.VALUE_TRANSCODING_PRINTING);
            g2.setRenderingHint(RenderingHintsKeyExt.KEY_AVOID_TILE_PAINTING,
                    RenderingHintsKeyExt.VALUE_AVOID_TILE_PAINTING_ON);

            Paper paper = new Paper();
            paper.setSize(transformer.getRotatedSvgW(), transformer.getRotatedSvgH());
            paper.setImageableArea(0, 0, transformer.getRotatedSvgW(), transformer.getRotatedSvgH());
            PageFormat pf = new PageFormat();
            pf.setPaper(paper);
            pt.print(g2, pf, 0);
            g2.dispose();
        }
    });
}