Example usage for com.itextpdf.layout.element Div Div

List of usage examples for com.itextpdf.layout.element Div Div

Introduction

In this page you can find the example usage for com.itextpdf.layout.element Div Div.

Prototype

Div

Source Link

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;//w w  w.  ja va 2  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;
    }
}