questions.objects.ChaptersAndMemory.java Source code

Java tutorial

Introduction

Here is the source code for questions.objects.ChaptersAndMemory.java

Source

/*
 * This example was written by Bruno Lowagie, author of the book
 * 'iText in Action' by Manning Publications (ISBN: 1932394796).
 * You can use this example as inspiration for your own applications.
 * The following license applies:
 * http://www.1t3xt.com/about/copyright/index.php?page=MIT
 */

package questions.objects;

import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.ChapterAutoNumber;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Phrase;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;

public class ChaptersAndMemory {

    public static final String RESULT = "results/questions/objects/numbered_chapters.pdf";

    /**
     * Generates a PDF file with autonumbered chapters and an open bookmark tab
     * 
     * @param args
     *            no arguments needed here
     */
    public static void main(String[] args) {
        // step 1: creation of a document-object
        Document document = new Document();
        try {
            // step 2:
            // we create a writer
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));
            writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
            // step 3: we open the document
            document.open();
            // step 4: we add a paragraph to the document
            Phrase text = new Phrase("Quick brown fox jumps over the lazy dog. ");
            ChapterAutoNumber chapter1 = new ChapterAutoNumber("This is a sample sentence:");
            chapter1.setBookmarkTitle("The fox");
            chapter1.setBookmarkOpen(false);
            chapter1.setComplete(false);
            Section section1 = chapter1.addSection("Quick");
            section1.add(text);
            section1.add(text);
            section1.add(text);
            document.add(chapter1);
            Section section2 = chapter1.addSection("Fox");
            section2.add(text);
            section2.setComplete(false);
            document.add(chapter1);
            section2.add(text);
            section2.add(text);
            section2.setComplete(true);
            chapter1.setComplete(true);
            document.add(chapter1);
            ChapterAutoNumber chapter2 = new ChapterAutoNumber("Jumps");
            chapter2.setComplete(false);
            Section section = chapter2.addSection("Over");
            section.setComplete(false);
            section.add(text);
            section.add(text);
            section.add(text);
            Section subsection1 = section.addSection("Lazy");
            subsection1.setIndentationLeft(30);
            subsection1.add(text);
            subsection1.setComplete(false);
            document.add(chapter2);
            subsection1.add(text);
            subsection1.add(text);
            subsection1.add(text);
            subsection1.add(text);
            subsection1.setComplete(true);
            Section subsection2 = section.addSection("Dog");
            subsection2.setIndentationRight(30);
            subsection2.add(text);
            subsection2.add(text);
            subsection2.add(text);
            subsection2.add(text);
            subsection2.add(text);
            Section subsection3 = section.addSection("Did you see it?");
            subsection3.setIndentation(50);
            subsection3.add(text);
            subsection3.add(text);
            subsection3.add(text);
            subsection3.add(text);
            subsection3.add(text);
            section.setComplete(true);
            document.add(chapter2);
        } catch (DocumentException de) {
            System.err.println(de.getMessage());
        } catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }

        // step 5: we close the document
        document.close();
    }
}