How the Library Operates

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.

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.

Object Description
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