The Portable Document Format is a file format developed by Adobe in the 1990s to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. Based on the PostScript language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, vector graphics, raster images and other information needed to display it. PDF was standardized as ISO 32000 in 2008, and no longer requires any royalties for its implementation.
PDF files may contain a variety of content besides flat text and graphics including logical structuring elements, interactive elements such as annotations and form-fields, layers, rich media and three dimensional objects using U3D or PRC, and various other data formats. The PDF specification also provides for encryption and digital signatures, file attachments and metadata to enable workflows requiring these features.
History and standardization
made the PDF specification available free of charge in 1993. In the early years PDF was popular mainly in desktop publishing workflows, and competed with a variety of formats such as DjVu, Envoy, Common Ground Digital Paper, Farallon Replica and even Adobe's own PostScript format.PDF was a proprietary format controlled by Adobe until it was released as an open standard on July 1, 2008, and published by the International Organization for Standardization as ISO 32000-1:2008, at which time control of the specification passed to an ISO Committee of volunteer industry experts. In 2008, Adobe published a Public Patent License to ISO 32000-1 granting royalty-free rights for all patents owned by Adobe that are necessary to make, use, sell, and distribute PDF-compliant implementations.
PDF 1.7, the sixth edition of the PDF specification that became ISO 32000-1, includes some proprietary technologies defined only by Adobe, such as Adobe XML Forms Architecture and JavaScript extension for Acrobat, which are referenced by ISO 32000-1 as normative and indispensable for the full implementation of the ISO 32000-1 specification. These proprietary technologies are not standardized and their specification is published only on Adobe's website. Many of them are also not supported by popular third-party implementations of PDF.
On July 28, 2017, ISO 32000-2:2017 was published. ISO 32000-2 does not include any proprietary technologies as normative references.
Technical foundations
The PDF combines three technologies:- A subset of the PostScript page description programming language, for generating the layout and graphics.
- A font-embedding/replacement system to allow fonts to travel with the documents.
- A structured storage system to bundle these elements and any associated content into a single file, with data compression where appropriate.
PostScript
if
and loop
commands. PDF is largely based on PostScript but simplified to remove flow control features like these, while graphics commands such as lineto
remain.Often, the PostScript-like PDF code is generated from a source PostScript file. The graphics commands that are output by the PostScript code are collected and tokenized. Any files, graphics, or fonts to which the document refers also are collected. Then, everything is compressed to a single file. Therefore, the entire PostScript world remains intact.
As a document format, PDF has several advantages over PostScript:
- PDF contains tokenized and interpreted results of the PostScript source code, for direct correspondence between changes to items in the PDF page description and changes to the resulting page appearance.
- PDF supports transparent graphics; PostScript does not.
- PostScript is an interpreted programming language with an implicit global state, so instructions accompanying the description of one page can affect the appearance of any following page. Therefore, all preceding pages in a PostScript document must be processed to determine the correct appearance of a given page, whereas each page in a PDF document is unaffected by the others. As a result, PDF viewers allow the user to quickly jump to the final pages of a long document, whereas a PostScript viewer needs to process all pages sequentially before being able to display the destination page.
Technical overview
File structure
A PDF file is a 7-bit ASCII file, except for certain elements that may have binary content.A PDF file starts with a header containing the magic number and the version of the format such as
%PDF-1.7
. The format is a subset of a COS format. A COS tree file consists primarily of objects, of which there are eight types:- Boolean values, representing true or false
- Numbers
- Strings, enclosed within parentheses, may contain 8-bit characters.
- Names, starting with a forward slash
- Arrays, ordered collections of objects enclosed within square brackets
- Dictionaries, collections of objects indexed by Names enclosed within double pointy brackets
- Streams, usually containing large amounts of data, which can be compressed and binary, between the
stream
andendstream
keywords, preceded by a dictionary - The null object
Objects may be either direct or indirect. Indirect objects are numbered with an object number and a generation number and defined between the
obj
and endobj
keywords if residing in the document root. Beginning with PDF version 1.5, indirect objects may also be located in special streams known as object streams. This technique enables non-stream objects to have standard stream filters applied to them, reduces the size of files that have large numbers of small indirect objects and is especially useful for Tagged PDF. Object streams do not support specifying an object's generation number.An index table, also called the cross-reference table, is typically located near the end of the file and gives the byte offset of each indirect object from the start of the file. This design allows for efficient random access to the objects in the file, and also allows for small changes to be made without rewriting the entire file. Before PDF version 1.5, the table would always be in a special ASCII format, be marked with the
xref
keyword, and follow the main body composed of indirect objects. Version 1.5 introduced optional cross-reference streams, which have the form of a standard stream object, possibly with filters applied. Such a stream may be used instead of the ASCII cross-reference table and contains the offsets and other information in binary format. The format is flexible in that it allows for integer width specification, so that for example a document not exceeding 64 KiB in size may dedicate only 2 bytes for object offsets.At the end of a PDF file is a footer containing:
- The
startxref
keyword followed by an offset to the start of the cross-reference table or the cross-reference stream object - And the
%%EOF
end-of-file marker.
trailer
keyword followed by a dictionary containing information that would otherwise be contained in the cross-reference stream object's dictionary:- A reference to the root object of the tree structure, also known as the catalog
- The count of indirect objects in the cross-reference table
- And other optional information.
Imaging model
The basic design of how graphics are represented in PDF is very similar to that of PostScript, except for the use of transparency, which was added in PDF 1.4.PDF graphics use a device-independent Cartesian coordinate system to describe the surface of a page. A PDF page description can use a matrix to scale, rotate, or skew graphical elements. A key concept in PDF is that of the graphics state, which is a collection of graphical parameters that may be changed, saved, and restored by a page description. PDF has 24 graphics state properties, of which some of the most important are:
- The current transformation matrix, which determines the coordinate system
- The clipping path
- The color space
- The alpha constant, which is a key component of transparency
Vector graphics
PDF supports several types of patterns. The simplest is the tiling pattern in which a piece of artwork is specified to be drawn repeatedly. This may be a colored tiling pattern, with the colors specified in the pattern object, or an uncolored tiling pattern, which defers color specification to the time the pattern is drawn. Beginning with PDF 1.3 there is also a shading pattern, which draws continuously varying colors. There are seven types of shading pattern of which the simplest are the axial shade and radial shade.
Raster images
in PDF are represented by dictionaries with an associated stream. The dictionary describes properties of the image, and the stream contains the image data. Images are typically filtered for compression purposes. Image filters supported in PDF include the following general purpose filters:- ASCII85Decode, a filter used to put the stream into 7-bit ASCII,
- ASCIIHexDecode, similar to ASCII85Decode but less compact,
- FlateDecode, a commonly used filter based on the deflate algorithm defined in ; introduced in PDF 1.2; it can use one of two groups of predictor functions for more compact zlib/deflate compression: Predictor 2 from the TIFF 6.0 specification and predictors from the PNG specification,
- LZWDecode, a filter based on LZW Compression; it can use one of two groups of predictor functions for more compact LZW compression: Predictor 2 from the TIFF 6.0 specification and predictors from the PNG specification,
- RunLengthDecode, a simple compression method for streams with repetitive data using the run-length encoding algorithm and the image-specific filters,
- DCTDecode, a lossy filter based on the JPEG standard,
- CCITTFaxDecode, a lossless bi-level filter based on the Group 3 or Group 4 CCITT fax compression standard defined in ITU-T T.4 and T.6,
- JBIG2Decode, a lossy or lossless bi-level filter based on the JBIG2 standard, introduced in PDF 1.4, and
- JPXDecode, a lossy or lossless filter based on the JPEG 2000 standard, introduced in PDF 1.5.
Text
Text in PDF is represented by text elements in page content streams. A text element specifies that characters should be drawn at certain positions. The characters are specified using the encoding of a selected font resource.Fonts
A font object in PDF is a description of a digital typeface. It may either describe the characteristics of a typeface, or it may include an embedded font file. The latter case is called an embedded font while the former is called an unembedded font. The font files that may be embedded are based on widely used standard digital font formats: Type 1, TrueType, and OpenType. Additionally PDF supports the Type 3 variant in which the components of the font are described by PDF graphic operators.Standard Type 1 Fonts (Standard 14 Fonts)
Fourteen typefaces, known as the standard 14 fonts, have a special significance in PDF documents:These fonts are sometimes called the base fourteen fonts. These fonts, or suitable substitute fonts with the same metrics, should be available in most PDF readers, but they are not guaranteed to be available in the reader, and may only display correctly if the system has them installed. Fonts may be substituted if they are not embedded in a PDF.
Encodings
Within text strings, characters are shown using character codes that map to glyphs in the current font using an encoding. There are a number of predefined encodings, including WinAnsi, MacRoman, and many encodings for East Asian languages, and a font can have its own built-in encoding. PDF can specify a predefined encoding to use, the font's built-in encoding or provide a lookup table of differences to a predefined or built-in encoding. The encoding mechanisms in PDF were designed for Type 1 fonts, and the rules for applying them to TrueType fonts are complex.For large fonts or fonts with non-standard glyphs, the special encodings Identity-H and Identity-V are used. With such fonts it is necessary to provide a ToUnicode table if semantic information about the characters is to be preserved.
Transparency
The original imaging model of PDF was, like PostScript's, opaque: each object drawn on the page completely replaced anything previously marked in the same location. In PDF 1.4 the imaging model was extended to allow transparency. When transparency is used, new objects interact with previously marked objects to produce blending effects. The addition of transparency to PDF was done by means of new extensions that were designed to be ignored in products written to the PDF 1.3 and earlier specifications. As a result, files that use a small amount of transparency might view acceptably in older viewers, but files making extensive use of transparency could be viewed incorrectly in an older viewer without warning.The transparency extensions are based on the key concepts of transparency groups, blending modes, shape, and alpha. The model is closely aligned with the features of Adobe Illustrator version 9. The blend modes were based on those used by Adobe Photoshop at the time. When the PDF 1.4 specification was published, the formulas for calculating blend modes were kept secret by Adobe. They have since been published.
The concept of a transparency group in PDF specification is independent of existing notions of "group" or "layer" in applications such as Adobe Illustrator. Those groupings reflect logical relationships among objects that are meaningful when editing those objects, but they are not part of the imaging model.
Interactive elements
PDF files may contain interactive elements such as annotations, form fields, video, 3D and rich media.Rich Media PDF is a PDF file including interactive content that can be embedded or linked within the file.
Interactive Forms is a mechanism to add forms to the PDF file format.
PDF currently supports two different methods for integrating data and PDF forms. Both formats today coexist in the PDF specification:
- AcroForms, introduced in the PDF 1.2 format specification and included in all later PDF specifications.
- Adobe XML Forms Architecture forms, introduced in the PDF 1.5 format specification. Adobe XFA Forms are not compatible with AcroForms. XFA was deprecated from PDF with PDF 2.0.
AcroForms
Alongside the standard PDF action types, interactive forms support submitting, resetting, and importing data. The "submit" action transmits the names and values of selected interactive form fields to a specified uniform resource locator. Interactive form field names and values may be submitted in any of the following formats, :
- HTML Form format
- Forms Data Format
- XML Forms Data Format
Forms Data Format (FDF)
The Forms Data Format is based on PDF, it uses the same syntax and has essentially the same file structure, but is much simpler than PDF, since the body of an FDF document consists of only one required object. Forms Data Format is defined in the PDF specification. The Forms Data Format can be used when submitting form data to a server, receiving the response, and incorporating into the interactive form. It can also be used to export form data to stand-alone files that can be imported back into the corresponding PDF interactive form.XML Forms Data Format (XFDF)
XML Forms Data Format is the XML version of Forms Data Format, but the XFDF implements only a subset of FDF containing forms and annotations. Some entries in the FDF dictionary do not have XFDF equivalents – such as the Status, Encoding, JavaScript, Pages keys, EmbeddedFDFs, Differences and Target. In addition, XFDF does not allow the spawning, or addition, of new pages based on the given data; as can be done when using an FDF file. The XFDF specification is referenced in PDF 1.5 specification. It is described separately in XML Forms Data Format Specification. The PDF 1.4 specification allowed form submissions in XML format, but this was replaced by submissions in XFDF format in the PDF 1.5 specification. XFDF conforms to the XML standard.As of December 2016, XFDF 3.0 is an ISO/IEC standard under the formal name ISO 19444-1:2016 – Document management – XML Forms Data Format – Part 1: Use of ISO 32000-2 . This standard is a normative reference of ISO 32000-2.
XFDF can be used in the same way as FDF; e.g., form data is submitted to a server, modifications are made, then sent back and the new form data is imported in an interactive form. It can also be used to export form data to stand-alone files that can be imported back into the corresponding PDF interactive form.
Adobe XML Forms Architecture (XFA)
In PDF 1.5, Adobe Systems introduced a proprietary format for forms; Adobe XML Forms Architecture. Adobe XFA Forms are not compatible with ISO 32000's AcroForms feature, and most PDF processors do not handle XFA content. The XFA specification is referenced from ISO 32000-1/PDF 1.7 as an external proprietary specification, and was entirely deprecated from PDF with ISO 32000-2.Logical structure and accessibility
A "tagged" PDF includes document structure and semantics information to enable reliable text extraction and accessibility. Technically speaking, tagged PDF is a stylized use of the format that builds on the logical structure framework introduced in PDF 1.3. Tagged PDF defines a set of standard structure types and attributes that allow page content to be extracted and reused for other purposes.Tagged PDF is not required in situations where a PDF file is intended only for print. Since the feature is optional, and since the rules for Tagged PDF were relatively vague in ISO 32000-1, support for tagged PDF amongst consuming devices, including assistive technology, is uneven at this time. ISO 32000-2, however, includes an improved discussion of tagged PDF which is anticipated to facilitate further adoption.
An ISO-standardized subset of PDF specifically targeted at accessibility; PDF/UA, was first published in 2012.
Optional Content Groups (layers)
With the introduction of PDF version 1.5 came the concept of Layers. Layers, or as they are more formally known Optional Content Groups, refer to sections of content in a PDF document that can be selectively viewed or hidden by document authors or consumers. This capability is useful in CAD drawings, layered artwork, maps, multi-language documents etc.Basically, it consists of an Optional Content Properties Dictionary added to the document root. This dictionary contains an array of Optional Content Groups, each describing a set of information and each of which may be individually displayed or suppressed, plus a set of Optional Content Configuration Dictionaries, which give the status of the given OCGs.
Security and signatures
A PDF file may be encrypted for security, or digitally signed for authentication.The standard security provided by Acrobat PDF consists of two different methods and two different passwords: a user password, which encrypts the file and prevents opening, and an owner password, which specifies operations that should be restricted even when the document is decrypted, which can include modifying, printing, or copying text and graphics out of the document, or adding or modifying text notes and [|AcroForm] fields. The user password encrypts the file, while the owner password does not, instead relying on client software to respect these restrictions. An owner password can easily be removed by software, including some free online services. Thus, the use restrictions that a document author places on a PDF document are not secure, and cannot be assured once the file is distributed; this warning is displayed when applying such restrictions using Adobe Acrobat software to create or edit PDF files.
Even without removing the password, most freeware or open source PDF readers ignore the permission "protections" and allow the user to print or make copy of excerpts of the text as if the document were not limited by password protection.
Usage rights
Beginning with PDF 1.5, Usage rights signatures are used to enable additional interactive features that are not available by default in a particular PDF viewer application. The signature is used to validate that the permissions have been granted by a bona fide granting authority. For example, it can be used to allow a user:- To save the PDF document along with modified form and/or annotation data
- Import form data files in FDF, XFDF, and text formats
- Export form data files in FDF and XFDF formats
- Submit form data
- new pages from named page templates
- Apply a digital signature to existing digital signature form field
- Create, delete, modify, copy, import, and export annotations
Vulnerabilities">Vulnerability_(computing)">Vulnerabilities
Under specific circumstances including non patched systems of the receiver, the information the receiver of a digital signed document sees can be manipulated by the sender after the document has been signed by the signer.File attachments
PDF files can have file attachments which processors may access and open or save to a local filesystem.Metadata
PDF files can contain two types of metadata. The first is the Document Information Dictionary, a set of key/value fields such as author, title, subject, creation and update dates. This is stored in the optional Info trailer of the file. A small set of fields is defined, and can be extended with additional text values if required. This method is deprecated in PDF 2.0.In PDF 1.4, support was added for Metadata Streams, using the Extensible Metadata Platform to add XML standards-based extensible metadata as used in other file formats. This allows metadata to be attached to any stream in the document, such as information about embedded illustrations, as well as the whole document, using an extensible schema.
Usage restrictions and monitoring
PDFs may be encrypted so that a password is needed to view or edit the contents. PDF 2.0 defines 256-bit AES encryption as standard for PDF 2.0 files. The PDF Reference also defines ways that third parties can define their own encryption systems for PDF.PDF files may be digitally signed; complete details on implementing digital signatures in PDF is provided in ISO 32000-2.
PDF files may also contain embedded DRM restrictions that provide further controls that limit copying, editing or printing. These restrictions depend on the reader software to obey them, so the security they provide is limited.
Default display settings
PDF documents can contain display settings, including the page display layout and zoom level. Adobe Reader uses these settings to override the user's default settings when opening the document. The free Adobe Reader cannot remove these settings.Intellectual property
Anyone may create applications that can read and write PDF files without having to pay royalties to Adobe Systems; Adobe holds patents to PDF, but licenses them for royalty-free use in developing software complying with its PDF specification.Technical issues
Accessibility
PDF files can be created specifically to be accessible for people with disabilities. PDF file formats in use can include tags, text equivalents, captions, audio descriptions, and more. Some software can automatically produce tagged PDFs, but this feature is not always enabled by default. Leading screen readers, including JAWS, Window-Eyes, Hal, and Kurzweil 1000 and 3000 can read tagged PDF. Moreover, tagged PDFs can be re-flowed and magnified for readers with visual impairments. Adding tags to older PDFs and those that are generated from scanned documents can present some challenges.One of the significant challenges with PDF accessibility is that PDF documents have three distinct views, which, depending on the document's creation, can be inconsistent with each other. The three views are the physical view, the tags view, and the content view. The physical view is displayed and printed. The tags view is what screen readers and other assistive technologies use to deliver a high-quality navigation and reading experience to users with disabilities. The content view is based on the physical order of objects within the PDF's content stream and may be displayed by software that does not fully support the tags view, such as the Reflow feature in Adobe's Reader.
PDF/UA, the International Standard for accessible PDF based on ISO 32000-1 was first published as ISO 14289–1 in 2012, and establishes normative language for accessible PDF technology.
Viruses and exploits
PDF attachments carrying viruses were first discovered in 2001. The virus, named OUTLOOK.PDFWorm or Peachy, uses Microsoft Outlook to send itself as an attachment to an Adobe PDF file. It was activated with Adobe Acrobat, but not with Acrobat Reader.From time to time, new vulnerabilities are discovered in various versions of Adobe Reader, prompting the company to issue security fixes. Other PDF readers are also susceptible. One aggravating factor is that a PDF reader can be configured to start automatically if a web page has an embedded PDF file, providing a vector for attack. If a malicious web page contains an infected PDF file that takes advantage of a vulnerability in the PDF reader, the system may be compromised even if the browser is secure. Some of these vulnerabilities are a result of the PDF standard allowing PDF documents to be scripted with JavaScript. Disabling JavaScript execution in the PDF reader can help mitigate such future exploits, although it does not protect against exploits in other parts of the PDF viewing software. Security experts say that JavaScript is not essential for a PDF reader, and that the security benefit that comes from disabling JavaScript outweighs any compatibility issues caused. One way of avoiding PDF file exploits is to have a local or web service convert files to another format before viewing.
On March 30, 2010 security researcher Didier Stevens reported an Adobe Reader and Foxit Reader exploit that runs a malicious executable if the user allows it to launch when asked.
Content
A PDF file is often a combination of vector graphics, text, and bitmap graphics. The basic types of content in a PDF are:- Text stored as content streams
- Vector graphics for illustrations and designs that consist of shapes and lines
- Raster graphics for photographs and other types of image
- Multimedia objects in the document
PDF 1.6 supports interactive 3D documents embedded in the PDF – 3D drawings can be embedded using U3D or PRC and various other data formats.
Two PDF files that look similar on a computer screen may be of very different sizes. For example, a high-resolution raster image takes more space than a low-resolution one. Typically higher resolution is needed for printing documents than for displaying them on screen. Other things that may increase the size of a file is embedding full fonts, especially for Asiatic scripts, and storing text as graphics.
Software
PDF viewers are generally provided free of charge, and many versions are available from a variety of sources.There are many software options for creating PDFs, including the PDF printing capabilities built into macOS, iOS, and most Linux distributions, LibreOffice, Microsoft Office 2007 and later, WordPerfect 9, Scribus, numerous PDF print drivers for Microsoft Windows, the pdfTeX typesetting system, the DocBook PDF tools, applications developed around Ghostscript and Adobe Acrobat itself as well as Adobe InDesign, Adobe FrameMaker, Adobe Illustrator, Adobe Photoshop. Google's online office suite Google Docs also allows for uploading and saving to PDF.
Raster image processors are used to convert PDF files into a raster format suitable for imaging onto paper and other media in printers, digital production presses and prepress in a process known as rasterisation. RIPs capable of processing PDF directly include the Adobe PDF Print Engine from Adobe Systems and Jaws and the Harlequin RIP from Global Graphics.
Conversions
Documents saved in PDF could be converted back and forth from many other formats such as:- Microsoft Office formats,
- Rich Text Format,
- OpenDocument,
- WordPerfect,
- Microsoft Windows Bitmap,
- Windows Metafile,
- Enhanced Metafile,
- Graphics Interchange Format,
- Microsoft HD Photo File,
- JPEG File Interchange,
- JPEG 2000 File Format and Code Stream,
- Portable Network Graphics,
- Tagged Image File,
- HyperText Markup Language,
- MIME Encapsulation of Aggregate HTML Documents,
- Scalable Vector Graphics,
- Microsoft Outlook,
- Text,
- XML Paper Specification,
- Extensible Markup Language,
- Silverlight XPS Document,
- Extensible Application Markup Language
Annotation
is one example of proprietary software that allows the user to annotate, highlight, and add notes to already created PDF files. One UNIX application available as free software is PDFedit. The freeware Foxit Reader, available for Microsoft Windows, macOS and Linux, allows annotating documents. Tracker Software's PDF-XChange Viewer allows annotations and markups without restrictions in its freeware alternative. Apple's macOS's integrated PDF viewer, Preview, does also enable annotations as does the open source software Skim, with the latter supporting interaction with LaTeX, SyncTeX, and PDFSync and integration with BibDesk reference management software. Freeware Qiqqa can create an annotation report that summarizes all the annotations and notes one has made across their library of PDFs. The Text Verification Tool exports differences in documents as annotations and markups.There are also web annotation systems that support annotation in pdf and other documents formats. In cases where PDFs are expected to have all of the functionality of paper documents, ink annotation is required.
Other
Examples of PDF software as online services including Scribd for viewing and storing, Pdfvue for online editing, and Thinkfree, Zamzar for conversion.In 1993 the Jaws raster image processor from Global Graphics became the first shipping prepress RIP that interpreted PDF natively without conversion to another format. The company released an upgrade to their Harlequin RIP with the same capability in 1997.
Agfa-Gevaert introduced and shipped Apogee, the first prepress workflow system based on PDF, in 1997.
Many commercial offset printers have accepted the submission of press-ready PDF files as a print source, specifically the PDF/X-1a subset and variations of the same. The submission of press-ready PDF files are a replacement for the problematic need for receiving collected native working files.
PDF was selected as the "native" metafile format for Mac OS X, replacing the PICT format of the earlier classic Mac OS. The imaging model of the Quartz graphics layer is based on the model common to Display PostScript and PDF, leading to the nickname Display PDF. The Preview application can display PDF files, as can version 2.0 and later of the Safari web browser. System-level support for PDF allows Mac OS X applications to create PDF documents automatically, provided they support the OS-standard printing architecture. The files are then exported in PDF 1.3 format according to the file header. When taking a screenshot under Mac OS X versions 10.0 through 10.3, the image was also captured as a PDF; later versions save screen captures as a PNG file, though this behaviour can be set back to PDF if desired.
In 2006 PDF was widely accepted as the standard print job format at the Open Source Development Labs Printing Summit. It is supported as a print job format by the Common Unix Printing System and desktop application projects such as GNOME, KDE, Firefox, Thunderbird, LibreOffice and OpenOffice have switched to emit print jobs in PDF.
Some desktop printers also support direct PDF printing, which can interpret PDF data without external help.
The Free Software Foundation once thought of as one of their high priority projects to be "developing a free, high-quality and fully functional set of libraries and programs that implement the PDF file format and associated technologies to the ISO 32000 standard." In 2011, however, the GNU PDF project was removed from the list of "high priority projects" due to the maturation of the Poppler library, which has enjoyed wider use in applications such as Evince with the GNOME desktop environment. Poppler is based on Xpdf code base. There are also commercial development libraries available as listed in List of PDF software.
The Apache PDFBox project of the Apache Software Foundation is an open source Java library for working with PDF documents. PDFBox is licensed under the Apache License.