Chapters
-
Introducing PDF and iText
-
Using iText's basic building blocks
-
Adding content at absolute positions
-
Organizing content in tables
-
Table, cell, and page events
-
Working with existing PDFs
-
Making documents interactive
-
Filling out interactive forms
-
Integrating iText in your web applications
-
Brightening up your PDF with color and images
-
Choosing the right font
-
Protecting your PDF
-
PDFs inside-out
-
The imaging model
-
Page content and structure
-
PDF streams
List of the illustrations used in the book
All the illustrations that are used in the book iText in Action
can be viewed on Flickr.
Chapter 1: Introducing PDF and iText
- Figure 1.1: Overview of PDF related functionality. The functionality covered by iText is marked with the iText logo.
- 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
- Figure 1.6: hello.pdf opened in Notepad++
- Figure 1.7: PDF document opened in Wordpad
See the complete set.
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
- Figure 2.13: Adding images to a PDF document
- Figure 2.14: Resized images
- Figure 2.15: Rotated images, wrapped in Chunk objects
See the complete set.
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.16: Skewing an image
- Figure 3.17: Mimicking strips of film using PdfTemplate
- Figure 3.18: Adding the same PdfTemplate object using different transformations
See the complete set.
Chapter 4: Organizing content in tables
- Figure 4.1: Your first PdfPTable
- Figure 4.2: Changing the width 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 table
- Figure 4.7: Cells and rotation, background color, borders, and border color
- Figure 4.8: Cells in composite mode
- Figure 4.9: Cells and images
- Figure 4.10: Nested tables
- 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 PDF with a table added at an absolute position
- Figure 4.15: Splitting a table vertically
- Figure 4.16: A PdfPTable rendered in two columns
See the complete set.
Chapter 5: Table, cell, and page events
- Figure 5.1: Table with alternating row backgrounds
- Figure 5.2: Cell 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 borders
- 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
- Figure 5.13: Adding a watermark using page events
See the complete set.
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
- Figure 6.14: A form filled out using iText
- Figure 6.15: A form filled out and flattened using iText
See the complete set.
Chapter 7: Making documents interactive
- Figure 7.1: Timetable with named actions triggered when 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.10: Link annotations have been added to all the images; see, for instance, the link to Donnie Darko at IMDB
- 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
See the complete set.
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 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 work arounds to fill out a Reader Enabled form
See the complete set.
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
- Figure 9.11: HTML snippets converted to PDF using styles
- Figure 9.12: An XML file converted to PDF
See the complete set.
Chapter 10: Brightening up your PDF with color and images
- Figure 10.1: Tiling patterns
- Figure 10.2: Shading patterns
- 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
- Figure 10.11: Hard and soft image masks
- Figure 10.12: Clipping images
- Figure 10.13: Clipped image with a transparent overlay
See the complete set.
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
- Figure 11.12: Automatic font selection
- Figure 11.13: Using itext for different languages
See the complete set.
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, of which one has "validity unknown"
- Figure 12.7: Document with two valid signatures
- Figure 12.8: Document with one valid and one invalid signature
- Figure 12.9: A signed PDF with a timestamp
See the complete set.
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
- Figure 13.6: Page numbers versus page labels
See the complete set.
Chapter 14: The imaging model
- Figure 14.1: Constructing and painting paths
- Figure 14.2: Constructing and painting shapes
- Figure 14.3: Examples demonstrating 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
- Figure 14.10: Different strategies for drawing Asian fonts
- Figure 14.11: Different strategies for using mixed fonts
See the complete set.
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
- Figure 15.7: Preface from the first edition
- Figure 15.7: Finding the location of text in existing PDFs
See the complete set.
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
See the complete set.
Buy it!
From the back cover
- "Deep coverage of both iText and PDFindispensable" Kevin Day, Trumpet Inc.
- "The classic, revised with practical code everyone can use." John S. Griffin, overstock.com
- "Masterful, comprehensive" Saicharan Manga, Services and Solutions
- "Invaluable examples... what you need is here." Paulo Soares, Glintt Business Solutions
- "The canonical source on iText" Michael Klink, AuthentiDate International
Content © 2010-2013 1T3XT BVBA

