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