Example usage for com.itextpdf.text.pdf PdfWriter setTagged

List of usage examples for com.itextpdf.text.pdf PdfWriter setTagged

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfWriter setTagged.

Prototype

public void setTagged() 

Source Link

Document

Mark this document for tagging.

Usage

From source file:automatedbillingsoftware.helper.HtmlToPdf.java

public void createPdf(String file, HashMap<String, Object> scopes) throws IOException, DocumentException {
    // step 1/* w  w w  . ja v  a  2s . c  om*/
    Document document = new Document(PageSize.A4);

    // step 2
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
    writer.setTagged();
    // step 3
    document.open();

    // step 4
    //        String readHtml = readHtml(HTML);
    System.out.println("challan" + DEST.contains("Challan-"));
    String readHtml = DEST.contains("Challan-") ? getDefaultTempProperties().getProperty("challan")
            : getDefaultTempProperties().getProperty("invoice");
    System.out.println("readHtml=>" + readHtml);
    String testTemplate = getTestTemplate(readHtml, scopes);
    XMLWorkerHelper.getInstance().parseXHtml(writer, document, new StringReader(testTemplate));

    //  XMLWorkerHelper.getInstance().parseXHtml(writer, );
    // step 5
    document.close();
}

From source file:automatedbillingsoftware.helper.HtmlToPdf1.java

/**
 * Creates a PDF with the words "Hello World"
 *
 * @param file/*from  w w w.  j a  v  a 2  s .c  om*/
 * @throws IOException
 * @throws DocumentException
 */
public void createPdf(String file, HashMap<String, Object> scopes) throws IOException, DocumentException {
    // step 1
    Document document = new Document();
    // step 2
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
    writer.setTagged();
    // step 3
    document.open();
    // step 4
    String readHtml = readHtml(HTML);
    String testTemplate = getTestTemplate(readHtml, scopes);
    XMLWorkerHelper.getInstance().parseXHtml(writer, document, new StringReader(testTemplate));

    // XMLWorkerHelper.getInstance().parseXHtml(writer, );
    // step 5
    document.close();
}

From source file:com.vectorprint.report.itext.style.stylers.DocumentSettings.java

License:Open Source License

/**
 * called as the last step from {@link #style(java.lang.Object, java.lang.Object) }, calls {@link #builtInFontHack()
 * } which is necessary when creating PDF/X-1a with iText.
 *
 * @param writer/*from   w  w w. j  a va2  s .  c  om*/
 * @throws IOException
 * @throws DocumentException
 * @throws VectorPrintException
 */
protected void pdfA1A(PdfWriter writer) throws IOException, DocumentException, VectorPrintException {
    builtInFontHack();
    writer.setPdfVersion(PdfWriter.PDF_VERSION_1_4);
    writer.setTagged();
    writer.setPDFXConformance(PdfWriter.PDFX1A2001);
}

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

License:Open Source License

/**
 * Create the PDF document and a the geospatial tags
 *
 * @param out/*from   w ww  .j av a  2 s .c om*/
 * @param mt
 * @param pm
 * @throws IOException
 */
public void createPDF(OutputStream out, MapTransform mt, ProgressMonitor pm) throws IOException {
    Document document = new Document(new Rectangle(width, height));
    try {
        PdfWriter writer = PdfWriter.getInstance(document, out);
        writer.setTagged();
        writer.setUserProperties(true);
        document.open();

        PdfContentByte cb = writer.getDirectContent();

        int numLayers = rootLayer.getLayerCount();
        for (int i = numLayers - 1; i >= 0; i--) {
            ILayer layer = rootLayer.getLayer(i);
            processSubLayer(layer, mt, writer, cb, pm, null);
        }
        georefPdf(writer, mt);

    } catch (DocumentException ex) {
        throw new IOException("Cannot create the pdf", ex);
    }
    document.close();
}

From source file:org.orbisgis.mapcomposer.controller.utils.exportThreads.ExportPDFThread.java

License:Open Source License

@Override
public void run() {
    try {//from  ww w  .  j  a  va 2  s . c om
        Document pdfDocument = null;
        //Find the Document GE to create the BufferedImage where all the GE will be drawn
        for (GraphicalElement ge : geIsVectorMap.keySet()) {
            if (ge instanceof org.orbisgis.mapcomposer.model.graphicalelement.element.Document) {
                pdfDocument = new Document(new Rectangle(ge.getWidth(), ge.getHeight()));
                height = ge.getHeight();
            }
        }
        //If no Document was created, throw an exception
        if (pdfDocument == null) {
            throw new IllegalArgumentException(i18n.tr(
                    "Error on export : The list of GraphicalElement to export does not contain any Document GE."));
        }
        //Open the document
        PdfWriter writer = PdfWriter.getInstance(pdfDocument, new FileOutputStream(path));
        writer.setUserProperties(true);
        writer.setRgbTransparencyBlending(true);
        writer.setTagged();
        pdfDocument.open();

        PdfContentByte cb = writer.getDirectContent();

        progressBar.setIndeterminate(true);
        progressBar.setStringPainted(true);
        progressBar.setString(i18n.tr("Exporting the document ..."));

        int geCount = 0;
        int numberOfGe[] = new int[geManager.getRegisteredGEClasses().size()];
        for (int i = 0; i < numberOfGe.length; i++) {
            numberOfGe[i] = 0;
        }
        //Draw each GraphicalElement in the BufferedImage
        for (GraphicalElement ge : geStack) {
            if ((ge instanceof org.orbisgis.mapcomposer.model.graphicalelement.element.Document))
                continue;

            double rad = Math.toRadians(ge.getRotation());
            double newHeight = Math.abs(sin(rad) * ge.getWidth()) + Math.abs(cos(rad) * ge.getHeight());
            double newWidth = Math.abs(sin(rad) * ge.getHeight()) + Math.abs(cos(rad) * ge.getWidth());

            int maxWidth = Math.max((int) newWidth, ge.getWidth());
            int maxHeight = Math.max((int) newHeight, ge.getHeight());

            String layerName = ge.getGEName()
                    + numberOfGe[geManager.getRegisteredGEClasses().indexOf(ge.getClass())];

            if (geIsVectorMap.get(ge)) {
                PdfTemplate pdfTemplate = cb.createTemplate(maxWidth, maxHeight);
                Graphics2D g2dTemplate = pdfTemplate.createGraphics(maxWidth, maxHeight);
                PdfLayer layer = new PdfLayer(layerName, writer);
                cb.beginLayer(layer);
                ((RendererVector) geManager.getRenderer(ge.getClass())).drawGE(g2dTemplate, ge);
                cb.addTemplate(pdfTemplate, ge.getX() + (ge.getWidth() - maxWidth) / 2,
                        -ge.getY() + height - ge.getHeight() + (ge.getHeight() - maxHeight) / 2);
                g2dTemplate.dispose();
                cb.endLayer();
            }

            else {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                BufferedImage bi = ((RendererRaster) geManager.getRenderer(ge.getClass())).createGEImage(ge,
                        null);
                ImageIO.write(bi, "png", baos);
                Image image = Image.getInstance(baos.toByteArray());
                image.setAbsolutePosition(ge.getX() + (ge.getWidth() - maxWidth) / 2,
                        -ge.getY() + height - ge.getHeight() + (ge.getHeight() - maxHeight) / 2);

                PdfTemplate pdfTemplate = cb.createTemplate(maxWidth, maxHeight);
                Graphics2D g2dTemplate = pdfTemplate.createGraphics(maxWidth, maxHeight);
                PdfLayer layer = new PdfLayer(layerName, writer);
                cb.beginLayer(layer);
                g2dTemplate.drawImage(bi, 0, 0, null);
                cb.addTemplate(pdfTemplate, ge.getX() + (ge.getWidth() - maxWidth) / 2,
                        -ge.getY() + height - ge.getHeight() + (ge.getHeight() - maxHeight) / 2);
                g2dTemplate.dispose();
                cb.endLayer();
            }
            numberOfGe[geManager.getRegisteredGEClasses().indexOf(ge.getClass())]++;

            progressBar.setIndeterminate(false);
            progressBar.setValue((geCount * 100) / geIsVectorMap.keySet().size());
            progressBar.revalidate();
            geCount++;
        }

        pdfDocument.close();
        //Wait a bit before erasing the progress bar
        progressBar.setValue(progressBar.getMaximum());
        progressBar.setString(i18n.tr("Document successfully exported."));
        try {
            Thread.sleep(1500);
        } catch (InterruptedException e) {
            LoggerFactory.getLogger(ExportPDFThread.class).error(e.getMessage());
        }
        progressBar.setValue(0);
        progressBar.setStringPainted(false);

    } catch (IllegalArgumentException | IOException | DocumentException ex) {
        LoggerFactory.getLogger(ExportPDFThread.class).error(ex.getMessage());
    }
}

From source file:pdf.PdfBuilder.java

/**
 * Creates an accessible PDF with images and text.
 * @param dest  the path to the resulting PDF
 * @throws IOException//from   www .  j  a va 2 s.  c  o  m
 * @throws DocumentException
 */
public String createPdf(Invoice invoice) throws IOException, DocumentException {
    DEST = "C://temp/";
    SimpleDateFormat sdf = new SimpleDateFormat("MM");
    DEST += invoice.getCar().getId() + "month"
            + sdf.format(invoice.getSeriesOfLocationsOnRoad().get(0).getLocations().get(0).getDate()) + ".pdf";

    File file = new File(DEST);
    file.getParentFile().mkdirs();

    Document document = new Document(PageSize.A4.rotate());
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(DEST));
    writer.setPdfVersion(PdfWriter.VERSION_1_7);
    //TAGGED PDF
    //Make document tagged
    writer.setTagged();
    //===============
    //PDF/UA
    //Set document metadata
    writer.setViewerPreferences(PdfWriter.DisplayDocTitle);
    document.addLanguage("en-US");
    document.addTitle("Factuur voor auto " + invoice.getCar().getLicensePlate());
    writer.createXmpMetadata();
    //=====================
    document.open();

    Font font = FontFactory.getFont(FONT, BaseFont.WINANSI, BaseFont.EMBEDDED, 20);

    double amountPaidForDistance = invoice.getTotalAmount();
    double amountPaidForCordons = 0;

    for (Cordon c : invoice.getCordonOccurrences()) {
        amountPaidForDistance -= c.getAmount();
        amountPaidForCordons += c.getAmount();
    }

    Paragraph p = new Paragraph("\n", font);
    p.add(new Chunk("Aantal gereden kilometers:"));
    p.add(new Chunk("\n"));
    p.add(new Chunk(String.valueOf(invoice.getTotalDistance()) + " kilometer"));
    p.add(new Chunk("\n"));
    p.add(new Chunk("Met een gemiddeld tarief van " + (amountPaidForDistance / invoice.getTotalDistance() * 100)
            + " eurocent per kilometer"));
    p.add(new Chunk("\n"));
    p.add(new Chunk("Bedrag dat betaald dient te worden over de kilometers: "));
    p.add(new Chunk("\n"));
    p.add(new Chunk(amountPaidForDistance + " euro"));
    document.add(p);

    p = new Paragraph("\n\n", font);
    p.add(new Chunk(invoice.cordonOccurrencesString()));
    p.add(new Chunk("\n"));
    p.add(new Chunk("Bedrag dat betaald dient te worden over de cordons: "));
    p.add(new Chunk("\n"));
    p.add(new Chunk(amountPaidForCordons + " euro"));
    document.add(p);

    p = new Paragraph("\n\n", font);
    p.add(new Chunk("Totaal bedrag dat betaald dient te worden: "));
    p.add(new Chunk("\n"));
    p.add(new Chunk(String.valueOf(invoice.getTotalAmount()) + " euro"));
    document.add(p);
    document.close();

    return DEST;
}

From source file:pdfpruefbericht.PdfPruefbericht.java

License:Open Source License

public static void main(String[] args)
        throws IOException, DocumentException, SAXException, ParserConfigurationException, URISyntaxException {

    String RESULT = args[1];//  w w  w  .j  av a  2 s  . com
    String RESOURCE = args[0];
    ContentParser cp;
    float compression;

    try {
        compression = Float.parseFloat(args[2]);
    } catch (NumberFormatException e) {
        System.out.println("Kompresion konnte nicht geparsed werden ... : " + e.getMessage());
        compression = 0.5f;
    }

    try {
        Document document = new Document(PageSize.A4);
        document.setMargins(36, 72, 36, 144);
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
        writer.setTagged();
        document.open();
        PdfStructureTreeRoot root = writer.getStructureTreeRoot();
        root.mapRole(new PdfName("Report"), PdfName.ROOT);
        root.mapRole(new PdfName("Norm"), PdfName.SECT);
        root.mapRole(new PdfName("Test"), PdfName.SEPARATION);
        root.mapRole(new PdfName("Comment"), PdfName.CO);
        root.mapRole(new PdfName("img"), PdfName.PI);
        root.mapRole(new PdfName("log"), PdfName.L);
        root.mapRole(new PdfName("Setup"), PdfName.SETTINGS);
        root.mapRole(new PdfName("device"), PdfName.D);
        root.mapRole(new PdfName("parameter"), PdfName.P);

        PdfStructureElement top = new PdfStructureElement(root, new PdfName("Report"));
        SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
        List<PdfStructureElement> elements = new ArrayList<>();
        cp = new ContentParser(document, writer, elements);
        parser.parse(new InputSource(new FileInputStream(RESOURCE)), new StructureParser(top, elements));
        parser.parse(new InputSource(new FileInputStream(RESOURCE)), cp);
        PdfBuilder pdf = new PdfBuilder(document, writer, cp.getReport(), compression);
        pdf.build();
        document.close();
    } catch (IOException | DocumentException | SAXException | ParserConfigurationException e) {
        System.out.println(e.getMessage());
    }
    //watermark watermark = new watermark();
}