Example usage for com.itextpdf.kernel.events PdfDocumentEvent START_PAGE

List of usage examples for com.itextpdf.kernel.events PdfDocumentEvent START_PAGE

Introduction

In this page you can find the example usage for com.itextpdf.kernel.events PdfDocumentEvent START_PAGE.

Prototype

String START_PAGE

To view the source code for com.itextpdf.kernel.events PdfDocumentEvent START_PAGE.

Click Source Link

Document

Dispatched after page is created.

Usage

From source file:org.zafritech.zidingorms.io.pdf.PdfServiceImpl.java

@Override
public ByteArrayOutputStream DownloadPDF(Long id) {

    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    PdfWriter writer = new PdfWriter(outputStream);
    PdfDocument pdf = new PdfDocument(writer);
    PageSize pagesize = PageSize.A4;//from www .  j  ava2  s  .  c o  m

    Artifact artifact = artifactRepository.findOne(id);

    pdf.addEventHandler(PdfDocumentEvent.START_PAGE, new Header(artifact.getArtifactLongName()));

    //        TableHeader handler = new TableHeader();
    //        pdf.addEventHandler(PdfDocumentEvent.START_PAGE, handler); 

    PageXofY event = new PageXofY(pdf);
    pdf.addEventHandler(PdfDocumentEvent.END_PAGE, event);

    try (Document document = new Document(pdf, pagesize)) {

        Div div = new Div();

        document.setMargins(70, 50, 70, 50);

        styles = createPdfStyles(document);

        List<Item> items = itemRepository.findByArtifactIdOrderBySortIndexAsc(id);

        document.setTextAlignment(TextAlignment.CENTER);
        addEmptyLine(document, 20);
        document.add(
                new Paragraph(artifact.getArtifactProject().getProjectName()).addStyle(styles.get("Title")));
        document.add(new Paragraph(artifact.getArtifactType().getArtifactTypeLongName())
                .addStyle(styles.get("Subtitle")));
        document.add(new Paragraph(artifact.getIdentifier()).addStyle(styles.get("Normal")));

        addEmptyLine(document, 45);

        document.setTextAlignment(TextAlignment.LEFT);
        document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));

        for (Item item : items) {

            if (item.getItemClass().equals("HEADER")) {

                switch (item.getItemLevel()) {

                case 1:
                    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
                    document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Header1")));
                    break;

                case 2:
                    document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Header2")));
                    break;

                case 3:
                    document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Header3")));
                    break;

                case 4:
                    document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Header4")));
                    break;

                case 5:
                    document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Header5")));
                    break;

                default:
                    document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Normal")));
                }

            } else if (item.getItemClass().equals("REQUIREMENT")) {

                Paragraph p = new Paragraph();
                p.add((item.getIdentifier()).trim() + ":").add(new Tab()).add((item.getItemValue()).trim());
                document.add(p);

                addEmptyLine(document, 1);

            } else {

                document.add(new Paragraph(item.getItemValue()).addStyle(styles.get("Normal")));
            }
        }

        document.add(div);
        event.writeTotal(pdf);
        document.close();

        return outputStream;

    } catch (Exception e) {

        return null;
    }
}