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();
}
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();
}
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();
}
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);
}
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;
}
Aggregations