Search in sources :

Example 1 with IRenderer

use of com.itextpdf.layout.renderer.IRenderer in project i7js-highlevel by itext.

the class C02E12_JekyllHydeV8 method createPdf.

public void createPdf(String dest) throws IOException {
    // Initialize PDF document
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    // Initialize document
    Document document = new Document(pdf, PageSize.A4, false);
    PdfFont font = PdfFontFactory.createFont(StandardFonts.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(StandardFonts.HELVETICA_BOLD);
    document.setTextAlignment(TextAlignment.JUSTIFIED).setHyphenation(new HyphenationConfig("en", null, 3, 3)).setFont(font).setFontSize(11);
    Text totalPages = new Text("This document has {totalpages} pages.");
    IRenderer renderer = new TextRenderer(totalPages);
    totalPages.setNextRenderer(renderer);
    document.add(new Paragraph(totalPages));
    BufferedReader br = new BufferedReader(new FileReader(SRC));
    String line;
    Paragraph p;
    boolean title = true;
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line);
        p.setKeepTogether(true);
        if (title) {
            p.setFont(bold).setFontSize(12);
            title = false;
        } else {
            p.setFirstLineIndent(36);
        }
        if (line.isEmpty()) {
            p.setMarginBottom(12);
            title = true;
        } else {
            p.setMarginBottom(0);
        }
        document.add(p);
    }
    br.close();
    String total = renderer.toString().replace("{totalpages}", String.valueOf(pdf.getNumberOfPages()));
    ((TextRenderer) renderer).setText(total);
    ((Text) renderer.getModelElement()).setNextRenderer(renderer);
    document.relayout();
    // Close document
    document.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) HyphenationConfig(com.itextpdf.layout.hyphenation.HyphenationConfig) Text(com.itextpdf.layout.element.Text) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph) IRenderer(com.itextpdf.layout.renderer.IRenderer) PdfFont(com.itextpdf.kernel.font.PdfFont) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) TextRenderer(com.itextpdf.layout.renderer.TextRenderer)

Aggregations

PdfFont (com.itextpdf.kernel.font.PdfFont)1 PdfDocument (com.itextpdf.kernel.pdf.PdfDocument)1 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)1 Document (com.itextpdf.layout.Document)1 Paragraph (com.itextpdf.layout.element.Paragraph)1 Text (com.itextpdf.layout.element.Text)1 HyphenationConfig (com.itextpdf.layout.hyphenation.HyphenationConfig)1 IRenderer (com.itextpdf.layout.renderer.IRenderer)1 TextRenderer (com.itextpdf.layout.renderer.TextRenderer)1 BufferedReader (java.io.BufferedReader)1 FileReader (java.io.FileReader)1