iText in Action
2nd Edition
This is a table of contents for a new book. Note that this book isn't finished yet. More info...
- Part 1:
Creating PDF documents from scratch
- Chapter 1:
Introduction
- 1.1:
PDF on the fly
- 1.2:
What you'll be able to achieve after reading this book
- 1.2.1:
Using iText
- 1.2.2:
Mastering PDF
- 1.2.3:
Appendices
- 1.2.1:
Using iText
- 1.3:
Running the examples
- 1.4:
Creating a PDF document in five steps
- 1.4.1:
Creating a new Document object
- 1.4.2:
Getting a PdfWriter instance
- 1.4.3:
Opening the Document
- 1.4.4:
Adding content
- 1.4.5:
Closing the Document
- 1.4.1:
Creating a new Document object
- 1.5:
Summary
- 1.1:
PDF on the fly
- Chapter 2:
Composing a document using iText's Basic Building Blocks
- 2.1:
A real-world database
- 2.2:
Adding Chunk, Phrase, Paragraph and List objects
- 2.2.1:
The Chunk object: a String, a Font and some attributes
- 2.2.2:
The Phrase object: an List of Chunks with a leading
- 2.2.3:
The Paragraph object: a Phrase with extra properties and a newline
- 2.2.4:
Distributing text over different lines
- 2.2.5:
The List object: a sequence of Paragraphs called ListItem
- 2.2.6:
The DrawInterface: vertical position marks, separators and tabs
- 2.2.1:
The Chunk object: a String, a Font and some attributes
- 2.3:
Adding Anchor, Image, Chapter and Section objects
- 2.3.1:
The Anchor object: internal and external links
- 2.3.2:
Chapter and Section: get Bookmarks for free
- 2.3.3:
The Image object: adding raster format illustrations
- 2.3.1:
The Anchor object: internal and external links
- 2.4:
Summary
- 2.1:
A real-world database
- Chapter 3:
Adding content at absolute positions
- 3.1:
Introducing the concept of "direct content"
- 3.1.1:
Direct content layers
- 3.1.2:
Graphics state / Text state
- 3.1.3:
A real-world database: three more tables
- 3.1.1:
Direct content layers
- 3.2:
Adding text at absolute positions
- 3.2.1:
Convenience method: PdfContentByte.showTextAligned()
- 3.2.2:
Convenience method: ColumnText.showTextAligned()
- 3.2.1:
Convenience method: PdfContentByte.showTextAligned()
- 3.3:
Working with the ColumnText object
- 3.3.1:
Using ColumnText in text mode
- 3.3.2:
Using ColumnText in composite mode
- 3.3.1:
Using ColumnText in text mode
- 3.4:
Creating reusable content with PdfTemplate
- 3.4.1:
Image XObjects
- 3.4.2:
The PdfTemplate object
- 3.4.1:
Image XObjects
- 3.5:
Summary
- 3.1:
Introducing the concept of "direct content"
- Chapter 4:
Organizing content in tables
- 4.1:
Constructing tables
- 4.1.1:
Your first PdfPTable
- 4.1.2:
PdfPTable properties
- 4.1.1:
Your first PdfPTable
- 4.2:
Changing the properties of a cell
- 4.2.1:
PdfPCell in text mode
- 4.2.2:
PdfPCell in composite mode
- 4.2.1:
PdfPCell in text mode
- 4.3:
Dealing with large tables
- 4.3.1:
Repeating headers and footers
- 4.3.2:
Splitting tables
- 4.3.3:
Memory management for LargeElement implementations
- 4.3.1:
Repeating headers and footers
- 4.4:
Adding a table at an absolute position
- 4.4.1:
Working with writeSelectedRows()
- 4.4.2:
Wrapping tables in columns
- 4.4.1:
Working with writeSelectedRows()
- 4.5:
Summary
- 4.1:
Constructing tables
- Chapter 5:
Completing your layout using table, cell, and page events
- 5.1:
Decorating tables using table and cell events
- 5.1.1:
Implementing the PdfPTableEvent interface
- 5.1.2:
Implementing the PdfPCellEvent interface
- 5.1.3:
Combining table and cell events
- 5.1.1:
Implementing the PdfPTableEvent interface
- 5.2:
Basic building blocks and events
- 5.2.1:
Generic Chunk functionality
- 5.2.2:
Paragraph events
- 5.2.3:
Chapter/Section events
- 5.2.4:
Page order and blank pages
- 5.2.1:
Generic Chunk functionality
- 5.3:
Page boundaries
- 5.3.1:
The media box
- 5.3.2:
The crop box
- 5.3.3:
Other page boundaries
- 5.3.1:
The media box
- 5.4:
Page events
- 5.4.1:
Adding a header and a footer
- 5.4.2:
Solving the "page X of Y" problem
- 5.4.3:
Adding a watermark
- 5.4.4:
Creating a slide show
- 5.4.1:
Adding a header and a footer
- 5.5:
Summary
- 5.1:
Decorating tables using table and cell events
- Chapter 1:
Introduction
- Part 2:
Manipulating existing PDF documents
- Chapter 6:
Working with existing PDFs
- 6.1:
The PdfReader class
- 6.1.1:
Retrieving information about the document and its pages
- 6.1.2:
Reducing the memory use of PdfReader
- 6.1.1:
Retrieving information about the document and its pages
- 6.2:
Copying pages from existing PDF documents
- 6.2.1:
Importing pages
- 6.2.2:
Scaling and superimposing pages
- 6.2.3:
N-up copying and tiling PDF documents
- 6.2.1:
Importing pages
- 6.3:
Adding content with PdfStamper
- 6.3.1:
Adding content at absolute positions
- 6.3.2:
Creating a PDF in multiple passes
- 6.3.3:
Adding company stationery to an existing document
- 6.3.4:
Inserting pages into an existing document
- 6.3.5:
Filling out a PDF form
- 6.3.1:
Adding content at absolute positions
- 6.4:
Copying pages with PdfCopy
- 6.4.1:
Concatenating and splitting PDF documents
- 6.4.2:
PdfCopy versus PdfSmartCopy
- 6.4.3:
Concatenating forms
- 6.4.1:
Concatenating and splitting PDF documents
- 6.5:
Summary
- 6.1:
The PdfReader class
- Chapter 7:
Making documents interactive
- 7.1:
Introducing actions
- 7.1.1:
Document navigation actions
- 7.1.1:
Explicit destinations
- 7.1.3:
JavaScript in PDF documents
- 7.1.4:
More actions
- 7.1.1:
Document navigation actions
- 7.2:
Adding bookmarks
- 7.2.1:
Creating bookmarks for a new document
- 7.2.2:
Retrieving bookmarks from an existing document
- 7.2.3:
Adding bookmarks to an existing document
- 7.2.4:
Concatenating documents with bookmarks
- 7.2.5:
Open parameters
- 7.2.1:
Creating bookmarks for a new document
- 7.3:
Creating annotations
- 7.3.1:
Text annotations
- 7.3.2:
Link annotations
- 7.3.3:
File attachments
- 7.3.4:
Stamp, line and rectangle annotations
- 7.3.1:
Text annotations
- 7.4:
JavaScript programming in PDF
- 7.4.1:
Triggering JavaScript from a button
- 7.4.2:
Showing and hiding annotations
- 7.4.3:
A popup triggered by a button that doesn't need to be pushed
- 7.4.4:
Additional actions
- 7.4.5:
A PDF calculator
- 7.4.1:
Triggering JavaScript from a button
- 7.5:
Summary
- 7.1:
Introducing actions
- Chapter 8:
Filling out forms
- 8.1:
Button fields
- 8.1.1:
Radio fields and radio buttons
- 8.1.2:
Check boxes
- 8.1.3:
Pushbuttons
- 8.1.1:
Radio fields and radio buttons
- 8.2:
Text fields
- 8.2.1:
Creating text fields
- 8.2.2:
Filling out text fields
- 8.2.3:
Text fields and fonts
- 8.2.4:
Validating text fields
- 8.2.1:
Creating text fields
- 8.3:
Choice fields
- 8.3.1:
Creating list and combo boxes
- 8.3.2:
Manipulating lists and combo boxes
- 8.3.1:
Creating list and combo boxes
- 8.4:
Flattening a PDF form
- 8.4.1:
Choosing field names
- 8.4.2:
Optimizing the filling process
- 8.4.3:
Partial form flattening
- 8.4.4:
Customized form flattening
- 8.4.1:
Choosing field names
- 8.5:
The XML Forms Architecture (XFA)
- 8.5.1:
Static XFA forms
- 8.5.2:
Dynamic XFA forms
- 8.5.1:
Static XFA forms
- 8.6:
Preserving the usage rights of reader enabled forms
- 8.7:
Summary
- 8.1:
Button fields
- Chapter 6:
Working with existing PDFs
- Part 3:
Essential iText Skills
- Chapter 9:
Integrate iText in your web applications
- 9.1:
Creating PDF from a Servlet
- 9.1.1:
The five steps of PDF creation in a web application
- 9.1.2:
Troubleshooting web applications
- 9.1.3:
Generating PDF from a JSP page
- 9.1.1:
The five steps of PDF creation in a web application
- 9.2:
Making a form "web ready"
- 9.2.1:
Adding a submit button to an existing form
- 9.2.2:
Filling out a form on the server side
- 9.2.3:
FDF and XFDF in web applications
- 9.2.1:
Adding a submit button to an existing form
- 9.3:
Establishing JavaScript communication between HTML and PDF
- 9.4:
Creating basic building blocks from HTML and XML
- 9.4.1:
Parsing XML
- 9.4.2:
Parsing HTML
- 9.4.1:
Parsing XML
- 9.5:
Summary
- 9.1:
Creating PDF from a Servlet
- Chapter 10:
Brighten up your PDF with color and images
- 10.1:
Color and transparency
- 10.1.1:
Device colors
- 10.1.2:
Spot colors
- 10.1.3:
Painting patterns
- 10.1.4:
Transparency
- 10.1.1:
Device colors
- 10.2:
Overview of supported image types
- 10.2.1:
JPEG, JPEG2000, GIF, PNG, BMP, WMF, TIFF, and JBIG2
- 10.2.2:
Creating a raw image
- 10.2.3:
CCITT compressed images
- 10.2.4:
Creating barcodes
- 10.2.5:
Working with java.awt.Image
- 10.2.6:
Compressing images
- 10.2.7:
Images consisting of multiple pages or frames
- 10.2.8:
Embedding a movie into a PDF
- 10.2.1:
JPEG, JPEG2000, GIF, PNG, BMP, WMF, TIFF, and JBIG2
- 10.3:
Images and transparency
- 10.3.1:
Making images transparent
- 10.3.2:
Masking images
- 10.3.3:
Clipping images
- 10.3.1:
Making images transparent
- 10.4:
Summary
- 10.1:
Color and transparency
- Chapter 11:
Choose the right font
- 11.1:
Getting fonts from a file
- 11.1.1:
Font files and their extensions
- 11.1.2:
Type 1 fonts
- 11.1.3:
True Type and Open Type fonts
- 11.1.1:
Font files and their extensions
- 11.2:
Font types
- 11.2.1:
Simple fonts
- 11.2.2:
Composite fonts
- 11.2.1:
Simple fonts
- 11.3:
Using fonts in iText
- 11.3.1:
Overview of the Font classes
- 11.3.2:
Type 3 fonts
- 11.3.3:
CJK Fonts
- 11.3.4:
Writing from right to left
- 11.3.5:
Advanced typography
- 11.3.1:
Overview of the Font classes
- 11.4:
Automating font creation and selection
- 11.4.1:
Getting a Font from the FontFactory
- 11.4.2:
Automatic font selection
- 11.4.1:
Getting a Font from the FontFactory
- 11.5:
Summary
- 11.1:
Getting fonts from a file
- Chapter 12:
Protect your PDF
- 12.1:
Adding metadata
- 12.1.1:
The Info dictionary
- 12.1.2:
The eXtensible Metadata Platform (XMP)
- 12.1.1:
The Info dictionary
- 12.2:
Compressing content streams
- 12.2.1:
Compression levels
- 12.2.2:
Compressing and decompressing existing files
- 12.2.1:
Compression levels
- 12.3:
Encrypting a PDF document
- 12.3.1:
Creating a password encrypted PDF
- 12.3.2:
Public-key encryption
- 12.3.1:
Creating a password encrypted PDF
- 12.4:
Digital signatures, OCSP and timestamping
- 12.4.1:
Creating an unsigned signature field
- 12.4.2:
Signing a PDF
- 12.4.3:
Adding multiple signatures
- 12.4.4:
Verifying the signatures in a document
- 12.4.5:
Creating the digest and signing externally
- 12.4.6:
CRLs, OCSP, and timestamping
- 12.4.1:
Creating an unsigned signature field
- 12.5:
Summary
- 12.1:
Adding metadata
- Chapter 9:
Integrate iText in your web applications
- Part 4:
Under the hood
- Chapter 13:
PDF files inside-out
- 13.1:
PDF, why and how?
- 13.1.1:
The ancestors of PDF
- 13.1.2:
The history of PDF
- 13.1.3:
PDF as an ISO standard
- 13.1.4:
PDF/X, PDF/A, PDF/E, PDF/UA, and other types of PDF
- 13.1.1:
The ancestors of PDF
- 13.2:
The Carousel Object System
- 13.2.1:
Basic PDF objects
- 13.2.2:
The PDF file structure
- 13.2.3:
Climbing up the object tree
- 13.2.1:
Basic PDF objects
- 13.3:
Exploring the root of a PDF file
- 13.3.1:
Page layout, page mode, and viewer preferences
- 13.3.2:
Pages and page labels
- 13.3.3:
Outlines, destinations and names
- 13.3.4:
Acroforms revisited
- 13.3.1:
Page layout, page mode, and viewer preferences
- 13.4:
Summary
- 13.1:
PDF, why and how?
- Chapter 14:
Examining page content
- 14.1:
The Adobe Imaging Model
- 14.1.1:
The coordinate system
- 14.1.2:
Graphics state
- 14.1.3:
Text state
- 14.1.1:
The coordinate system
- 14.2:
Structured content
- 14.2.1:
Optional content
- 14.2.2:
Marked content and accessibility
- 14.2.1:
Optional content
- 14.3:
Parsing PDF documents
- 14.4:
Summary
- 14.1:
The Adobe Imaging Model
- Chapter 15:
PDF streams
- 15.1:
Manipulating stream objects
- 15.2:
Embedding files inside a PDF
- 15.2.1:
File Attachments
- 15.2.2:
Portable collections
- 15.2.1:
File Attachments
- 15.3:
PDF and Rich Media
- 15.4:
Summary
- 15.1:
Manipulating stream objects
- Chapter 13:
PDF files inside-out
- Appendix:
- Appendix A:
Resources
- Appendix B:
Barcodes
- Appendix C:
Graphics2D
- Appendix D:
Print a PDF programmatically
- Appendix A:
Resources
