Search in sources :

Example 1 with PdfPage

use of com.itextpdf.kernel.pdf.PdfPage in project i7js-highlevel by itext.

the class C07E06_PageLabels method createPdf.

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    PdfPage page = pdf.addNewPage();
    page.setPageLabel(PageLabelNumberingStyle.LOWERCASE_ROMAN_NUMERALS, null);
    Document document = new Document(pdf);
    document.add(new Paragraph().add("Page left blank intentionally"));
    document.add(new AreaBreak());
    document.add(new Paragraph().add("Page left blank intentionally"));
    document.add(new AreaBreak());
    document.add(new Paragraph().add("Page left blank intentionally"));
    document.add(new AreaBreak());
    page = pdf.getLastPage();
    page.setPageLabel(PageLabelNumberingStyle.DECIMAL_ARABIC_NUMERALS, null, 1);
    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<AbstractMap.SimpleEntry<String, AbstractMap.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 AbstractMap.SimpleEntry(name, new AbstractMap.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);
    page = pdf.getLastPage();
    page.setPageLabel(null, "TOC", 1);
    toc.remove(0);
    List<TabStop> tabstops = new ArrayList();
    tabstops.add(new TabStop(580, TabAlignment.RIGHT, new DottedLine()));
    for (AbstractMap.SimpleEntry<String, AbstractMap.SimpleEntry<String, Integer>> entry : toc) {
        AbstractMap.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);
    }
    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) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) AbstractMap(java.util.AbstractMap) DottedLine(com.itextpdf.kernel.pdf.canvas.draw.DottedLine) PdfFont(com.itextpdf.kernel.font.PdfFont) FileReader(java.io.FileReader) PdfPage(com.itextpdf.kernel.pdf.PdfPage) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph) Tab(com.itextpdf.layout.element.Tab) BufferedReader(java.io.BufferedReader)

Example 2 with PdfPage

use of com.itextpdf.kernel.pdf.PdfPage in project i7js-highlevel by itext.

the class CanvasFontMethods method createPdf.

public void createPdf(String dest) throws IOException {
    // Initialize PDF document
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    // Initialize document
    PdfPage page = pdf.addNewPage();
    PdfCanvas pdfCanvas = new PdfCanvas(page);
    Rectangle rectangle = new Rectangle(36, 36, 523, 770);
    Canvas canvas = new Canvas(pdfCanvas, rectangle);
    Paragraph p;
    p = new Paragraph("Testing font methods");
    canvas.add(p);
    PdfFont font = PdfFontFactory.createFont(StandardFonts.TIMES_ROMAN);
    canvas.setFont(font);
    p = new Paragraph("Testing font methods: changed font");
    canvas.add(p);
    canvas.setFontSize(18);
    p = new Paragraph("Testing font methods: changed font size");
    canvas.add(p);
    canvas.setFontColor(ColorConstants.BLUE);
    p = new Paragraph("Testing font methods: changed color");
    canvas.add(p);
    canvas.setBold();
    p = new Paragraph("Testing font methods: to bold");
    canvas.add(p);
    canvas.setItalic();
    p = new Paragraph("Testing font methods: to italic");
    canvas.add(p);
    canvas.setProperty(Property.BOLD_SIMULATION, false);
    canvas.setProperty(Property.ITALIC_SIMULATION, false);
    canvas.setProperty(Property.FONT_COLOR, null);
    p = new Paragraph("Testing font methods: resetting style and color");
    canvas.add(p);
    canvas.setLineThrough();
    p = new Paragraph("Testing font methods: line through (default)");
    canvas.add(p);
    canvas.setProperty(Property.UNDERLINE, null);
    canvas.setUnderline();
    p = new Paragraph("Testing font methods: underline (default)");
    canvas.add(p);
    canvas.setProperty(Property.UNDERLINE, null);
    canvas.setUnderline(2, 4);
    canvas.setUnderline(ColorConstants.BLUE, 5, 0.1f, 2, -0.5f, PdfCanvasConstants.LineCapStyle.ROUND);
    p = new Paragraph("Testing font methods: underline (custom)");
    canvas.add(p);
    canvas.setProperty(Property.UNDERLINE, null);
    canvas.setTextRenderingMode(PdfCanvasConstants.TextRenderingMode.STROKE);
    p = new Paragraph("Testing font methods: change text rendering mode");
    canvas.add(p);
    canvas.setStrokeWidth(0.1f);
    canvas.setStrokeColor(ColorConstants.BLUE);
    p = new Paragraph("Testing font methods: change stroke width and color");
    canvas.add(p);
    // Close document
    pdf.close();
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) Canvas(com.itextpdf.layout.Canvas) PdfCanvas(com.itextpdf.kernel.pdf.canvas.PdfCanvas) PdfFont(com.itextpdf.kernel.font.PdfFont) Rectangle(com.itextpdf.kernel.geom.Rectangle) PdfCanvas(com.itextpdf.kernel.pdf.canvas.PdfCanvas) PdfPage(com.itextpdf.kernel.pdf.PdfPage) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph)

Example 3 with PdfPage

use of com.itextpdf.kernel.pdf.PdfPage in project i7js-highlevel by itext.

the class C07E07_PageLayoutPageMode method createPdf.

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    pdf.getCatalog().setPageLayout(PdfName.TwoColumnRight);
    pdf.getCatalog().setPageMode(PdfName.UseThumbs);
    PdfPage page = pdf.addNewPage();
    page.setPageLabel(PageLabelNumberingStyle.LOWERCASE_ROMAN_NUMERALS, null);
    Document document = new Document(pdf);
    document.add(new Paragraph().add("Page left blank intentionally"));
    document.add(new AreaBreak());
    document.add(new Paragraph().add("Page left blank intentionally"));
    document.add(new AreaBreak());
    document.add(new Paragraph().add("Page left blank intentionally"));
    document.add(new AreaBreak());
    page = pdf.getLastPage();
    page.setPageLabel(PageLabelNumberingStyle.DECIMAL_ARABIC_NUMERALS, null, 1);
    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<AbstractMap.SimpleEntry<String, AbstractMap.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 AbstractMap.SimpleEntry(name, new AbstractMap.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);
    page = pdf.getLastPage();
    page.setPageLabel(null, "TOC", 1);
    toc.remove(0);
    List<TabStop> tabstops = new ArrayList();
    tabstops.add(new TabStop(580, TabAlignment.RIGHT, new DottedLine()));
    for (AbstractMap.SimpleEntry<String, AbstractMap.SimpleEntry<String, Integer>> entry : toc) {
        AbstractMap.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);
    }
    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) Document(com.itextpdf.layout.Document) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) AbstractMap(java.util.AbstractMap) DottedLine(com.itextpdf.kernel.pdf.canvas.draw.DottedLine) PdfFont(com.itextpdf.kernel.font.PdfFont) FileReader(java.io.FileReader) PdfPage(com.itextpdf.kernel.pdf.PdfPage) PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument) Paragraph(com.itextpdf.layout.element.Paragraph) Tab(com.itextpdf.layout.element.Tab) BufferedReader(java.io.BufferedReader)

Example 4 with PdfPage

use of com.itextpdf.kernel.pdf.PdfPage in project i7j-pdfsweep by itext.

the class PdfCleanUpTool method cleanUpPage.

/**
 * Cleans a page from the document by erasing all the areas which
 * are provided or extracted from redaction annotations.
 *
 * @param pageNumber the page to be cleaned up
 * @param cleanUpLocations the locations to be cleaned up
 */
private void cleanUpPage(int pageNumber, List<PdfCleanUpLocation> cleanUpLocations) {
    if (cleanUpLocations.size() == 0) {
        return;
    }
    List<Rectangle> regions = new ArrayList<>();
    for (PdfCleanUpLocation cleanUpLocation : cleanUpLocations) {
        regions.add(cleanUpLocation.getRegion());
    }
    PdfPage page = pdfDocument.getPage(pageNumber);
    PdfCleanUpProcessor cleanUpProcessor = new PdfCleanUpProcessor(regions, pdfDocument);
    cleanUpProcessor.setFilteredImagesCache(filteredImagesCache);
    cleanUpProcessor.processPageContent(page);
    if (processAnnotations) {
        cleanUpProcessor.processPageAnnotations(page, regions, redactAnnotations != null);
    }
    PdfCanvas pageCleanedContents = cleanUpProcessor.popCleanedCanvas();
    page.put(PdfName.Contents, pageCleanedContents.getContentStream());
    page.setResources(pageCleanedContents.getResources());
    colorCleanedLocations(pageCleanedContents, cleanUpLocations);
}
Also used : Rectangle(com.itextpdf.kernel.geom.Rectangle) ArrayList(java.util.ArrayList) PdfCanvas(com.itextpdf.kernel.pdf.canvas.PdfCanvas) PdfPage(com.itextpdf.kernel.pdf.PdfPage)

Example 5 with PdfPage

use of com.itextpdf.kernel.pdf.PdfPage in project i7j-pdfsweep by itext.

the class TextPositioningTest method createTestCanvas.

private static PdfCanvas createTestCanvas(float canvasLeading) throws IOException {
    PdfDocument document = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));
    PdfPage documentPage = document.addNewPage();
    PdfCanvas canvas = new PdfCanvas(documentPage);
    canvas.setLeading(canvasLeading);
    canvas.setFontAndSize(PdfFontFactory.createFont(StandardFonts.COURIER), 14);
    return canvas;
}
Also used : PdfWriter(com.itextpdf.kernel.pdf.PdfWriter) PdfCanvas(com.itextpdf.kernel.pdf.canvas.PdfCanvas) ByteArrayOutputStream(java.io.ByteArrayOutputStream) PdfPage(com.itextpdf.kernel.pdf.PdfPage) PdfDocument(com.itextpdf.kernel.pdf.PdfDocument)

Aggregations

PdfPage (com.itextpdf.kernel.pdf.PdfPage)16 PdfDocument (com.itextpdf.kernel.pdf.PdfDocument)14 PdfWriter (com.itextpdf.kernel.pdf.PdfWriter)12 PdfCanvas (com.itextpdf.kernel.pdf.canvas.PdfCanvas)11 Rectangle (com.itextpdf.kernel.geom.Rectangle)10 Paragraph (com.itextpdf.layout.element.Paragraph)9 PdfFont (com.itextpdf.kernel.font.PdfFont)8 Canvas (com.itextpdf.layout.Canvas)7 Document (com.itextpdf.layout.Document)5 Text (com.itextpdf.layout.element.Text)4 HyphenationConfig (com.itextpdf.layout.hyphenation.HyphenationConfig)4 ArrayList (java.util.ArrayList)4 PdfReader (com.itextpdf.kernel.pdf.PdfReader)3 DottedLine (com.itextpdf.kernel.pdf.canvas.draw.DottedLine)3 AreaBreak (com.itextpdf.layout.element.AreaBreak)3 Tab (com.itextpdf.layout.element.Tab)3 TabStop (com.itextpdf.layout.element.TabStop)3 BufferedReader (java.io.BufferedReader)3 FileReader (java.io.FileReader)3 PdfString (com.itextpdf.kernel.pdf.PdfString)2