Chapter 1. Introducing PDF and iText
Figure 1.2. Compiling and running from the command line
Figure 1.3. Organization of the sample files
Figure 1.4. A “Hello World” PDF
Figure 1.5. The project opened in Eclipse
Chapter 2. Using iText’s basic building blocks
Figure 2.1. UML class diagram, presenting the building blocks that will be discussed in this chapter
Figure 2.2. Film database entity relationship diagram
Figure 2.3. Country chunks, produced with listing 2.2
Figure 2.4. A PDF file opened in Adobe Reader and Evince on Ubuntu
Figure 2.5. A PDF file opened in Adobe Reader and Evince on Ubuntu
Figure 2.6. Splitting paragraphs
Figure 2.7. List and ListItem variations
Figure 2.8. Class diagram of DrawInterface implementations
Figure 2.9. Vertical position marks
Figure 2.10. Dotted line and other separators
Figure 2.11. Chunks acting as tab positions
Figure 2.12. A PDF with bookmarks
Chapter 3. Adding content at absolute positions
Figure 3.1. Adding content using low-level methods to a page created with high-level objects
Figure 3.2. The four content layers: 2 and 3 for the high-level objects; 1 and 4 for direct content
Figure 3.3. Repeating the same rectangle using different graphics states
Figure 3.4. Festival database entity relationship diagram
Figure 3.5. Film festival timetable
Figure 3.6. Timetable with movie time blocks
Figure 3.7. Measuring and positioning text: width, ascent, and descent of a String
Figure 3.8. Adding text with ColumnText.showTextAligned()
Figure 3.9. Timetable without movie titles
Figure 3.10. The finished timetable, now with the movie titles
Figure 3.11. Movie information, organized in columns
Figure 3.12. Irregular columns
Figure 3.13. Columns in composite mode
Figure 3.14. Alignment in composite mode
Figure 3.15. Image covering text
Figure 3.17. Mimicking strips of film using a PdfTemplate
Figure 3.18. Adding the same PdfTemplate object using different transformations
Chapter 4. Organizing content in tables
Figure 4.1. Your first PdfPTable
Figure 4.2. Changing the widths of tables and columns
Figure 4.3. Three tables with different alignments
Figure 4.4. Cells in text mode
Figure 4.5. Different spacing in cells
Figure 4.6. Different row height methods for cells and tables
Figure 4.7. Cells and rotation, background color, borders, and border colors
Figure 4.8. Cells in composite mode
Figure 4.11. Nesting tables for complex layouts
Figure 4.12. Repeating headers and footers
Figure 4.13. Different ways to split a table
Figure 4.14. A calendar in a PDF with a table added at an absolute position
Chapter 5. Table, cell, and page events
Figure 5.1. Table with alternating row backgrounds
Figure 5.2. Cells with custom background and extra info added using cell events
Figure 5.3. Mimicking cell spacing using cell and table events
Figure 5.4. A variation on the calendar example, now with rounded corners
Figure 5.5. Page events for Chunks and Paragraphs
Figure 5.6. Counting movies using the generic tag functionality
Figure 5.7. Page events for Chapters and Sections
Figure 5.8. Page events for Chapters and Sections: reordering pages
Figure 5.9. A PDF with a different origin
Figure 5.10. An A0 sized page divided into 16 A4 pages
Figure 5.11. Adding headers and footers using page events
Figure 5.12. Solving the page X of Y problem with page events
Chapter 6. Working with existing PDFs
Figure 6.1. Importing pages from an existing PDF document
Figure 6.2. Scaling and skewing pages from an existing PDF
Figure 6.3. PDF created by superimposing four different pages
Figure 6.4. Using an existing PDF as background image for new PDFs
Figure 6.5. N-up copying combines multiple pages onto one page
Figure 6.6. Scaling and tiling a PDF file
Figure 6.7. Adding text to an existing document
Figure 6.8. Adding a page X of Y header to an existing document
Figure 6.9. Adding stationery to an existing document
Figure 6.10. Creating an XML form document with Open Office Writer
Figure 6.11. Creating fields in an Open Office document
Figure 6.12. Exporting an Open Office document as a PDF form
Figure 6.13. A form created with Open Office Writer
Chapter 7. Making documents interactive
Figure 7.1. Timetable with named actions triggered by clicking the arrows
Figure 7.2. JavaScript Console window
Figure 7.3. Search window in Adobe Reader
Figure 7.4. Document with bookmarks created using PdfOutline
Figure 7.5. Bookmarks added to an existing document
Figure 7.6. Concatenated documents with concatenated bookmarks
Figure 7.7. Text annotations containing more info about a movie
Figure 7.8. Different types of icons for text annotations
Figure 7.9. Text annotations added to the existing timetable
Figure 7.11. Movie list with file attachments
Figure 7.12. Stamp, rectangle, and line annotations added to an existing document
Figure 7.13. An advertisement that can be clicked away, added to an existing document
Figure 7.14. Text annotation in a popup using a button and its events
Figure 7.15. A calculator application in a PDF demonstrating the use of annotations and JavaScript
Chapter 8. Filling out interactive forms
Figure 8.1. A PDF file with different button fields
Figure 8.2. A PDF file with different text fields
Figure 8.3. Creating text fields containing Unicode characters
Figure 8.4. Filling out text fields containing Unicode characters
Figure 8.5. A PDF file with different choice fields
Figure 8.6. Before: a form with four fields
Figure 8.7. After: a form with two fields
Figure 8.8. Advertisement for the Foobar Film Festival
Figure 8.9. Forms involved in the Foobar Film Festival ad
Figure 8.10. A static XFA form
Figure 8.11. Partially filled-in form
Figure 8.12. Correctly filled-out XFA form
Figure 8.13. Creating a new form with Adobe LiveCycle Designer
Figure 8.14. Using an XSD as a data connection to create the form
Figure 8.15. Reorganizing the fields in the form
Figure 8.16. Empty dynamic XFA form
Figure 8.17. Dynamic XFA form filled with movie XML
Figure 8.18. A Reader-enabled form can be filled out and saved in Adobe Reader
Figure 8.19. Filling out a form programmatically can break Reader-enabling
Figure 8.20. Two workarounds to fill out a Reader Enabled form
Chapter 9. Integrating iText in your web applications
Figure 9.1. Hello World servlet opened in Eclipse, Firefox, Chrome, and MSIE
Figure 9.2. PDFs created with GET and POST actions
Figure 9.3. Adding submit buttons to an existing form
Figure 9.4. InputStream of the HttpServletRequest (POST)
Figure 9.5. InputStream of the HttpServletRequest (FDF)
Figure 9.6. InputStream of the HttpServletRequest (XFDF)
Figure 9.7. Uploading a file using FDF
Figure 9.8. Creating FDF based on data sent from an HTML form
Figure 9.9. JavaScript communication between HTML and PDF
Figure 9.10. HTML snippets converted to PDF without using styles
Chapter 10. Brightening your document with color and images
Figure 10.3. Transparency groups
Figure 10.4. Isolation and knockout
Figure 10.5. Different image types
Figure 10.6. Images built using raw image data
Figure 10.7. Compressed image with quality loss
Figure 10.8. Different frames taken from an animated GIF
Figure 10.9. Making images transparent
Figure 10.10. Transparency with java.awt.Image
Chapter 11. Choosing the right font
Figure 11.1. One sentence written in different fonts
Figure 11.2. TrueType fonts, TrueType collections, OpenType fonts with TrueType outlines
Figure 11.3. TrueType collection example
Figure 11.4. Encodings available in different font files
Figure 11.5. Using different encodings of the same font
Figure 11.6. Using Identity-H instead of different encodings
Figure 11.7. Type 3 and CJK font example
Figure 11.8. The vertical writing system
Figure 11.9. Writing from right to left
Figure 11.10. Using diacritics, ancillary glyphs added to a letter
Figure 11.11. Using ligatures, joining different glyphs into one
Chapter 12. Protecting your PDF
Figure 12.1. Metadata in PDF files
Figure 12.2. A protected public-key encrypted PDF document
Figure 12.3. An opened public-key-encrypted PDF document
Figure 12.4. PDFs with signature fields
Figure 12.5. PDF with a certifying signature
Figure 12.6. Document with two signatures, one of which has “validity unknown”
Figure 12.7. Document with two valid signatures
Figure 12.8. Document with one valid and one invalid signature
Chapter 13. PDFs inside-out
Figure 13.1. PDF reference cover, Acrobat Starter Kit advertisement, and Acrobat diskettes
Figure 13.2. Hello World PDFs opened in Notepad++
Figure 13.3. The iText in Action, first edition ebook opened in RUPS
Figure 13.4. Page layout with columns
Figure 13.5. Print dialog box with default values set using viewer preferences
Chapter 14. The imaging model
Figure 14.1. Constructing and painting paths
Figure 14.2. Constructing and painting shapes
Figure 14.3. Examples of different line characteristics
Figure 14.4. The current transformation matrix
Figure 14.5. Demonstrating the different text state operators
Figure 14.6. Demonstrating the convenience methods for text
Figure 14.7. Graphics2D for Swing and PDF; the Pear example from the Java tutorial
Figure 14.8. Combining JFreeChart and iText
Figure 14.9. Demonstration and solution of the encoding problem
Chapter 15. Page content and structure
Figure 15.1. Making content visible and invisible
Figure 15.2. Different groups of optional content
Figure 15.3. Changing visibility using actions
Figure 15.4. The interactive map of Foobar
Figure 15.5. Using marked content for object data
Figure 15.6. Content that can be read out loud
Chapter 16. PDF streams
Figure 16.1. Non-embedded versus embedded fonts
Figure 16.2. File attachment annotations
Figure 16.3. Go to embedded files
Figure 16.4. A portable collection containing PDF files
Figure 16.5. A portable collection containing different file types
Figure 16.6. Document with a 3D annotation
Figure 16.7. Integrating a Flash application in a PDF document
Figure 16.8. Communication between PDF and Flash
Figure 16.9. Overview of the PDF functionality that was covered