import java.io.FileOutputStream;
import com.lowagie.text.Chapter;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfPageEventHelper;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.tools.plugins.Concat;
public class MainClass extends PdfPageEventHelper {
protected Document toc = new Document();
public MainClass() throws Exception {
PdfWriter.getInstance(toc, new FileOutputStream("toc.pdf"));
toc.open();
}
public void onChapter(PdfWriter writer, Document document, float position, Paragraph title) {
try {
toc.add(new Paragraph(title.content() + " page " + document.getPageNumber()));
} catch (DocumentException e) {
e.printStackTrace();
}
}
public void onChapterEnd(PdfWriter writer, Document document, float position) {
try {
toc.add(Chunk.NEWLINE);
} catch (DocumentException e) {
e.printStackTrace();
}
}
public void onSection(PdfWriter writer, Document document, float position, int depth,
Paragraph title) {
try {
switch (depth) {
case 2:
toc.add(new Paragraph(title.content(), new Font(Font.HELVETICA, 10)));
break;
default:
toc.add(new Paragraph(title.content(), new Font(Font.HELVETICA, 8)));
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
public void onCloseDocument(PdfWriter writer, Document document) {
toc.close();
}
public static void main(String[] args) throws Exception {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("chapter_events.pdf"));
writer.setPageEvent(new MainClass());
document.open();
Paragraph hello = new Paragraph("hello");
Chapter universe = new Chapter("asdf", 1);
Section section;
section = universe.addSection("World");
section.add(hello);
Section planets = universe.addSection("Planets");
planets.add(hello);
section = planets.addSection("to Venus:");
section.add(hello);
document.add(universe);
Chapter people = new Chapter("People", 2);
section = people.addSection("asasdf");
section.add(hello);
document.add(people);
document.setPageSize(PageSize.A4.rotate());
Chapter animals = new Chapter("3", 3);
section = animals.addSection("section");
section.add(hello);
document.add(animals);
document.close();
String[] arguments = { "toc.pdf", "chapter_events.pdf", "toc_chapters.pdf" };
Concat.main(arguments);
}
}