Search in sources :

Example 16 with AreaBreak

use of com.itextpdf.layout.element.AreaBreak in project i7js-highlevel by itext.

the class C02E10_JekyllHydeV6 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);
    Paragraph p = new Paragraph().add("Be prepared to read a story about a London lawyer " + "named Gabriel John Utterson who investigates strange " + "occurrences between his old friend, Dr. Henry Jekyll, " + "and the evil Edward Hyde.");
    document.add(p);
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    // Set column parameters
    float offSet = 36;
    float gutter = 23;
    float columnWidth = (PageSize.A4.getWidth() - offSet * 2) / 2 - gutter;
    float columnHeight = PageSize.A4.getHeight() - offSet * 2;
    // Define column areas
    Rectangle[] columns = { new Rectangle(offSet, offSet, columnWidth, columnHeight), new Rectangle(offSet + columnWidth + gutter, offSet, columnWidth, columnHeight) };
    document.setRenderer(new ColumnDocumentRenderer(document, columns));
    document.add(new AreaBreak(AreaBreakType.LAST_PAGE));
    PdfFont font = PdfFontFactory.createFont(StandardFonts.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(StandardFonts.HELVETICA_BOLD);
    document.setTextAlignment(TextAlignment.JUSTIFIED).setFont(font).setHyphenation(new HyphenationConfig("en", null, 3, 3));
    BufferedReader br = new BufferedReader(new FileReader(SRC));
    String line;
    boolean title = true;
    AreaBreak nextPage = new AreaBreak(AreaBreakType.NEXT_AREA);
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line);
        if (title) {
            p.setFont(bold).setFontSize(12);
            title = false;
        } else {
            p.setFirstLineIndent(36);
        }
        if (line.isEmpty()) {
            document.add(nextPage);
            title = true;
        }
        document.add(p);
    }
    br.close();
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    document.setRenderer(new DocumentRenderer(document));
    document.add(new AreaBreak(AreaBreakType.LAST_PAGE));
    p = new Paragraph().add("This was the story about the London lawyer " + "named Gabriel John Utterson who investigates strange " + "occurrences between his old friend, Dr. Henry Jekyll, " + "and the evil Edward Hyde. THE END!");
    document.add(p);
    // Close document
    document.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) Rectangle(com.itextpdf.kernel.geom.Rectangle) HyphenationConfig(com.itextpdf.layout.hyphenation.HyphenationConfig) AreaBreak(com.itextpdf.layout.element.AreaBreak) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Document(com.itextpdf.layout.Document) DocumentRenderer(com.itextpdf.layout.renderer.DocumentRenderer) ColumnDocumentRenderer(com.itextpdf.layout.ColumnDocumentRenderer) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph) ColumnDocumentRenderer(com.itextpdf.layout.ColumnDocumentRenderer) PdfFont(com.itextpdf.kernel.font.PdfFont) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader)

Example 17 with AreaBreak

use of com.itextpdf.layout.element.AreaBreak in project i7js-highlevel by itext.

the class C03E18_ImageTypes method createPdf.

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf);
    // raw
    byte[] data = new byte[256 * 3];
    for (int i = 0; i < 256; i++) {
        data[i * 3] = (byte) (255 - i);
        data[i * 3 + 1] = (byte) (255 - i);
        data[i * 3 + 2] = (byte) i;
    }
    ImageData raw = ImageDataFactory.create(256, 1, 3, 8, data, null);
    Image img = new Image(raw);
    img.scaleAbsolute(256, 10);
    document.add(img);
    // JPEG2000
    Image img1 = new Image(ImageDataFactory.create(TEST1));
    document.add(img1);
    document.add(new AreaBreak());
    // BMP
    Image img2 = new Image(ImageDataFactory.create(TEST2));
    img2.setMarginBottom(10);
    document.add(img2);
    // PNG
    Image img3 = new Image(ImageDataFactory.create(TEST3));
    img3.setMarginBottom(10);
    document.add(img3);
    // Transparent PNG
    Image img4 = new Image(ImageDataFactory.create(TEST4));
    img4.setBorderLeft(new SolidBorder(6));
    document.add(img4);
    // GIF
    Image img5 = new Image(ImageDataFactory.create(TEST5));
    img5.setBackgroundColor(ColorConstants.LIGHT_GRAY);
    document.add(img5);
    // AWT
    java.awt.Image awtImage = Toolkit.getDefaultToolkit().createImage(TEST5);
    Image awt = new Image(ImageDataFactory.create(awtImage, java.awt.Color.yellow));
    awt.setMarginTop(10);
    document.add(awt);
    // JBIG2
    Image img6 = new Image(ImageDataFactory.create(TEST6));
    document.add(img6);
    // TIFF
    Image img7 = new Image(ImageDataFactory.create(TEST7));
    document.add(img7);
    document.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) ImageData(com.itextpdf.io.image.ImageData) AreaBreak(com.itextpdf.layout.element.AreaBreak) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Document(com.itextpdf.layout.Document) Image(com.itextpdf.layout.element.Image) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) SolidBorder(com.itextpdf.layout.borders.SolidBorder) java.awt(java.awt)

Example 18 with AreaBreak

use of com.itextpdf.layout.element.AreaBreak in project i7js-highlevel by itext.

the class C07E08_FullScreen method createPdf.

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    pdf.getCatalog().setPageMode(PdfName.FullScreen);
    PdfViewerPreferences preferences = new PdfViewerPreferences();
    preferences.setNonFullScreenPageMode(PdfViewerPreferencesConstants.USE_THUMBS);
    pdf.getCatalog().setViewerPreferences(preferences);
    Document document = new Document(pdf, PageSize.A8);
    document.add(new Paragraph("Mr. Jekyl"));
    document.add(new AreaBreak());
    document.add(new Paragraph("Mr. Hyde"));
    document.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfViewerPreferences(com.itextpdf.kernel.pdf.PdfViewerPreferences) AreaBreak(com.itextpdf.layout.element.AreaBreak) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph)

Example 19 with AreaBreak

use of com.itextpdf.layout.element.AreaBreak in project i7js-highlevel by itext.

the class C07E11_Actions method createPdf.

public void createPdf(String dest) throws IOException {
    // Initialize PDF document
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    pdf.getCatalog().setOpenAction(PdfDestination.makeDestination(new PdfString("toc")));
    pdf.getCatalog().setAdditionalAction(PdfName.WC, PdfAction.createJavaScript("app.alert('Thank you for reading');"));
    pdf.addNewPage().setAdditionalAction(PdfName.O, PdfAction.createJavaScript("app.alert('This is where it starts!');"));
    // Initialize document
    Document document = new Document(pdf);
    PdfFont font = PdfFontFactory.createFont(StandardFonts.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(StandardFonts.HELVETICA_BOLD);
    document.setTextAlignment(TextAlignment.JUSTIFIED).setHyphenation(new HyphenationConfig("en", "uk", 3, 3)).setFont(font).setFontSize(11);
    BufferedReader br = new BufferedReader(new FileReader(SRC));
    String name, line;
    Paragraph p;
    boolean title = true;
    int counter = 0;
    List<SimpleEntry<String, SimpleEntry<String, Integer>>> toc = new ArrayList<>();
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line);
        p.setKeepTogether(true);
        if (title) {
            name = String.format("title%02d", counter++);
            p.setFont(bold).setFontSize(12).setKeepWithNext(true).setDestination(name);
            title = false;
            document.add(p);
            toc.add(new SimpleEntry(name, new SimpleEntry(line, pdf.getNumberOfPages())));
        } else {
            p.setFirstLineIndent(36);
            if (line.isEmpty()) {
                p.setMarginBottom(12);
                title = true;
            } else {
                p.setMarginBottom(0);
            }
            document.add(p);
        }
    }
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    p = new Paragraph().setFont(bold).add("Table of Contents").setDestination("toc");
    document.add(p);
    toc.remove(0);
    List<TabStop> tabstops = new ArrayList();
    tabstops.add(new TabStop(580, TabAlignment.RIGHT, new DottedLine()));
    for (SimpleEntry<String, SimpleEntry<String, Integer>> entry : toc) {
        SimpleEntry<String, Integer> text = entry.getValue();
        p = new Paragraph().addTabStops(tabstops).add(text.getKey()).add(new Tab()).add(String.valueOf(text.getValue())).setAction(PdfAction.createGoTo(entry.getKey()));
        document.add(p);
    }
    PdfPage page = pdf.getLastPage();
    page.setAdditionalAction(PdfName.C, PdfAction.createJavaScript("app.alert('Goodbye last page!');"));
    // Close document
    document.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) SimpleEntry(java.util.AbstractMap.SimpleEntry) ArrayList(java.util.ArrayList) HyphenationConfig(com.itextpdf.layout.hyphenation.HyphenationConfig) TabStop(com.itextpdf.layout.element.TabStop) PdfString(com.itextpdf.kernel.pdf.PdfString) AreaBreak(com.itextpdf.layout.element.AreaBreak) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) PdfString(com.itextpdf.kernel.pdf.PdfString) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph) Tab(com.itextpdf.layout.element.Tab) DottedLine(com.itextpdf.kernel.pdf.canvas.draw.DottedLine) PdfFont(com.itextpdf.kernel.font.PdfFont) BufferedReader(java.io.BufferedReader) FileReader(java.io.FileReader) PdfPage(com.itextpdf.kernel.pdf.PdfPage)

Example 20 with AreaBreak

use of com.itextpdf.layout.element.AreaBreak in project i7js-highlevel by itext.

the class C07E13_Compressed method createPdf.

public void createPdf(String dest) throws IOException {
    // Initialize PDF document
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest, new WriterProperties().setFullCompressionMode(true)));
    Image img = new Image(ImageDataFactory.create(IMG));
    IEventHandler handler = new TransparentImage(img);
    pdf.addEventHandler(PdfDocumentEvent.START_PAGE, handler);
    // Initialize document
    Document document = new Document(pdf);
    PdfFont bold = PdfFontFactory.createFont(StandardFonts.HELVETICA_BOLD);
    document.setTextAlignment(TextAlignment.JUSTIFIED).setHyphenation(new HyphenationConfig("en", "uk", 3, 3));
    BufferedReader br = new BufferedReader(new FileReader(SRC));
    String name, line;
    Paragraph p;
    boolean title = true;
    int counter = 0;
    List<SimpleEntry<String, SimpleEntry<String, Integer>>> toc = new ArrayList<>();
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line);
        p.setKeepTogether(true);
        if (title) {
            name = String.format("title%02d", counter++);
            p.setFont(bold).setFontSize(12).setKeepWithNext(true).setDestination(name);
            title = false;
            document.add(p);
            toc.add(new SimpleEntry(name, new SimpleEntry(line, pdf.getNumberOfPages())));
        } else {
            p.setFirstLineIndent(36);
            if (line.isEmpty()) {
                p.setMarginBottom(12);
                title = true;
            } else {
                p.setMarginBottom(0);
            }
            document.add(p);
        }
    }
    pdf.removeEventHandler(PdfDocumentEvent.START_PAGE, handler);
    document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
    p = new Paragraph().setFont(bold).add("Table of Contents").setDestination("toc");
    document.add(p);
    toc.remove(0);
    List<TabStop> tabstops = new ArrayList();
    tabstops.add(new TabStop(580, TabAlignment.RIGHT, new DottedLine()));
    for (SimpleEntry<String, SimpleEntry<String, Integer>> entry : toc) {
        SimpleEntry<String, Integer> text = entry.getValue();
        p = new Paragraph().addTabStops(tabstops).add(text.getKey()).add(new Tab()).add(String.valueOf(text.getValue())).setAction(PdfAction.createGoTo(entry.getKey()));
        document.add(p);
    }
    // Close document
    document.close();
}
Also used : ArrayList(java.util.ArrayList) HyphenationConfig(com.itextpdf.layout.hyphenation.HyphenationConfig) TabStop(com.itextpdf.layout.element.TabStop) AreaBreak(com.itextpdf.layout.element.AreaBreak) Image(com.itextpdf.layout.element.Image) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) WriterProperties(com.itextpdf.kernel.pdf.WriterProperties) DottedLine(com.itextpdf.kernel.pdf.canvas.draw.DottedLine) PdfFont(com.itextpdf.kernel.font.PdfFont) FileReader(java.io.FileReader) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) SimpleEntry(java.util.AbstractMap.SimpleEntry) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) IEventHandler(com.itextpdf.kernel.events.IEventHandler) Paragraph(com.itextpdf.layout.element.Paragraph) Tab(com.itextpdf.layout.element.Tab) BufferedReader(java.io.BufferedReader)

Aggregations

AreaBreak (com.itextpdf.layout.element.AreaBreak)26 PdfDocument (com.itextpdf.kernel.pdf.PdfDocument)25 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)25 Document (com.itextpdf.layout.Document)25 Paragraph (com.itextpdf.layout.element.Paragraph)20 PdfFont (com.itextpdf.kernel.font.PdfFont)17 HyphenationConfig (com.itextpdf.layout.hyphenation.HyphenationConfig)17 BufferedReader (java.io.BufferedReader)13 FileReader (java.io.FileReader)13 Rectangle (com.itextpdf.kernel.geom.Rectangle)8 DottedLine (com.itextpdf.kernel.pdf.canvas.draw.DottedLine)7 Tab (com.itextpdf.layout.element.Tab)7 TabStop (com.itextpdf.layout.element.TabStop)7 ArrayList (java.util.ArrayList)7 ColumnDocumentRenderer (com.itextpdf.layout.ColumnDocumentRenderer)6 Style (com.itextpdf.layout.Style)5 SolidBorder (com.itextpdf.layout.borders.SolidBorder)5 SimpleEntry (java.util.AbstractMap.SimpleEntry)5 Image (com.itextpdf.layout.element.Image)4 PdfPage (com.itextpdf.kernel.pdf.PdfPage)3