use of com.itextpdf.kernel.pdf.PdfDocument in project i7js-highlevel by itext.
the class C05E14_JekyllHydeTableV7 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.rotate());
Table table = new Table(UnitValue.createPercentArray(new float[] { 3, 2, 14, 9, 4, 3 }));
table.setWidth(UnitValue.createPercentValue(100));
List<List<String>> resultSet = CsvTo2DList.convert(SRC, "|");
List<String> header = resultSet.remove(0);
for (String field : header) {
table.addHeaderCell(field);
}
for (List<String> record : resultSet) {
table.addCell(record.get(0));
table.addCell(record.get(1));
Cell cell = new Cell().add(new Paragraph(record.get(2)));
cell.setNextRenderer(new RunlengthRenderer(cell, record.get(5)));
table.addCell(cell);
table.addCell(record.get(3));
table.addCell(record.get(4));
table.addCell(record.get(5));
}
document.add(table);
document.close();
}
use of com.itextpdf.kernel.pdf.PdfDocument in project i7js-highlevel by itext.
the class C06E01_URIAction method createPdf.
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
List<List<String>> resultSet = CsvTo2DList.convert(SRC, "|");
resultSet.remove(0);
com.itextpdf.layout.element.List list = new com.itextpdf.layout.element.List(ListNumberingType.DECIMAL);
for (List<String> record : resultSet) {
ListItem li = new ListItem();
li.setKeepTogether(true);
li.add(new Paragraph().setFontSize(14).add(record.get(2))).add(new Paragraph(String.format("Directed by %s (%s, %s)", record.get(3), record.get(4), record.get(1))));
File file = new File(String.format("src/main/resources/img/%s.jpg", record.get(0)));
if (file.exists()) {
Image img = new Image(ImageDataFactory.create(file.getPath()));
img.scaleToFit(10000, 120);
li.add(img);
}
String url = String.format("http://www.imdb.com/title/tt%s", record.get(0));
li.setAction(PdfAction.createURI(url));
list.add(li);
}
document.add(list);
document.close();
}
use of com.itextpdf.kernel.pdf.PdfDocument in project i7js-highlevel by itext.
the class C06E03_TOC_GoToPage 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);
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, 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);
// The following line is problematic when using setKeepWithNext
toc.add(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");
document.add(p);
toc.remove(0);
List<TabStop> tabstops = new ArrayList();
tabstops.add(new TabStop(580, TabAlignment.RIGHT, new DottedLine()));
for (SimpleEntry<String, Integer> entry : toc) {
p = new Paragraph().addTabStops(tabstops).add(entry.getKey()).add(new Tab()).add(String.valueOf(entry.getValue())).setAction(PdfAction.createGoTo(PdfExplicitDestination.createFit(pdf.getPage(entry.getValue()))));
document.add(p);
}
// Close document
document.close();
}
use of com.itextpdf.kernel.pdf.PdfDocument in project i7js-highlevel by itext.
the class C06E07_ChainedActions method createPdf.
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
PdfAction action = PdfAction.createJavaScript("app.alert('Boo');");
action.next(PdfAction.createGoToR(new File(C06E04_TOC_GoToNamed.DEST).getName(), 1, true));
Link link = new Link("here", action);
Paragraph p = new Paragraph().add("Click ").add(link.setFontColor(ColorConstants.BLUE)).add(" if you want to be scared.");
document.add(p);
document.close();
}
use of com.itextpdf.kernel.pdf.PdfDocument in project i7js-highlevel by itext.
the class C06E11_TOC_OutlinesDestinations method createPdf.
public void createPdf(String dest) throws IOException {
// Initialize PDF document
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
pdf.getCatalog().setPageMode(PdfName.UseOutlines);
// 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 line;
Paragraph p;
boolean title = true;
PdfOutline outline = null;
while ((line = br.readLine()) != null) {
p = new Paragraph(line);
p.setKeepTogether(true);
if (title) {
outline = createOutline(outline, pdf, line, p);
p.setFont(bold).setFontSize(12).setKeepWithNext(true);
title = false;
document.add(p);
} else {
p.setFirstLineIndent(36);
if (line.isEmpty()) {
p.setMarginBottom(12);
title = true;
} else {
p.setMarginBottom(0);
}
document.add(p);
}
}
// Close document
document.close();
}
Aggregations