The Adobe PDF Library allows applications to generate output files in PostScript and PDF page description languages by making calls to the Library. The following diagram illustrates the data flow for this process:
Adobe PDF Library Data Flow
Design of the Adobe PDF Library
The Adobe PDF Library is a high-level C-language library containing an object-oriented collection of routines which construct a reflection of a set of pages and their content. This reflection is independent of any schema for the creation or display of pages. The Library contains objects which reflect collections of information (pages, areas, strings and images) and presentations of text (such as fonts, colors, sizes, and rules).
The API organizes document components into objects that applications can manipulate. These objects fall into two categories:
- Objects that persist within the Library, either in memory or in the object store, until a document is completed and freed.
- Objects used to communicate with the Library. These objects are allocated in and may be directly manipulated by the application.
The following is a typical diagram of a composition application.
Structure of a Call
The following diagram illustrates call structures within an application:
What the Adobe PDF Library Generates
The Library may produce a set of pages in PDF or PostScript which reflects the state of the defined objects as the constituents of a document. A single document may be output in many forms, such as Linearized PDF, normal PDF, and PostScript from a single creation of a document. The routines that create, destroy, access, or modify objects within the Library are defined in C language header (.h) files which define the exposed API to the Adobe PDF Library.
Summary of the Most Common Objects
The Library supplies not only the ability to create PDF and PostScript, but also the ability to reorganize and reorder pages without recomposition. This table lists the most common objects used in creating applications. Use this as a roadmap to define the features you want your application to have.
|Document||This object creates or reads a document as input and writes either PDF (which may be read again) or PostScript (which may not be re-read) as output.|
|Page||This term denotes a single side of a single sheet of media. Among its properties, a page may be moved from one document to another or re-sequenced within a document, and annotations may be added or removed.|
|Container||Provides structural grouping|
|Graphical||Variety of objects which make a mark on the page, such as Text, Lines, Backgrounds and Pictures|
|Path||Mechanism for creating arbitrary line drawings with PDF|
|Image||Renders graphics for PDF|
|Form||An arbitrarily complex collection of other graphic operators which may be positioned and scaled freely|
|Bookmark||A collection of bookmark operators acts like a Table of Contents with live links in electronic display|
|Thread||Within a document, collects non-contiguous elements into a stream|
|Font||Describes a specific font and encoding needed to image text|
|Thumbnail||A low-resolution bitmap of a page used to identify the contents of a page|