Portable Document Format (PDF) is an open file format created and controlled by Adobe Systems, for representing two-dimensional documents in a device independent and resolution independent fixed-layout document format. Each PDF file encapsulates a complete description of a 2D document (and, with the advent of Acrobat 3D, embedded 3D documents) that includes the text, fonts, images, and 2D vector graphics that compose the document. PDF files do not encode information that is specific to the application software, hardware, or operating system used to create or view the document. This feature ensures that a valid PDF will render exactly the same regardless of its origin or destination (but depending on font availability).
Anyone may create applications that read and write PDF files without having to pay royalties to Adobe Systems; Adobe holds a number of patents relating to the PDF format but licenses them on a royalty-free basis for use in developing software that complies with its PDF specification.
PDF files are most appropriately used to encode the exact look of a document in a device-independent way. While the PDF format can describe very simple one page documents, it may also be used for many pages, complex documents that use a variety of different fonts, graphics, colors, and images.
Readers for many platforms are available, such as Xpdf, Foxit and Adobe's own Adobe Reader; there are also front-ends for many platforms to Ghostscript. PDF readers are generally free. There are many software options for creating PDFs, including the PDF printing capability built in to Mac OS X, the multi-platform OpenOffice, numerous PDF print drivers for Microsoft Windows, and Adobe Acrobat itself. There is also specialized software for editing PDF files.
Proper subsets of PDF have been, or are being, standardized under ISO for several constituencies:
* PDF/X for the printing and graphic arts as ISO 15930 (working in ISO TC130)
* PDF/A for archiving in corporate/government/library/etc environments as ISO 19005 (work done in ISO TC171)
* PDF/E for exchange of engineering drawings (work done in ISO TC171)
* PDF/UA for universally accessible PDF files
PDF is primarily the combination of three technologies:
* a sub-set 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, and
* a structured storage system to bundle these elements and any associated content into a single file, with data compression where appropriate.
PostScript is a computer language — more precisely, a page description language — that is run in an interpreter to generate an image. This process requires a fair amount of resources.
PDF is a file format instead of a programming language and for that reason it doesn't need to be interpreted. For instance, flow control commands like if and loop are removed, while graphics commands such as lineto remain.
That means that the process of turning PDF back into a graphic is a matter of simply reading the description, rather than running a program in the PostScript interpreter. However, the entire PostScript world in terms of fonts, layout and measurement remains intact.
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 the document references are also collected; and finally everything is compressed into a single file.
As a document format, PDF has several advantages over PostScript:
* Single file: A PDF document resides in a single file, whereas the same document in PostScript may span multiple files (graphics, etc.) and probably occupies more space.
* Already interpreted: PDF contains already-interpreted results of the PostScript source code, so it is less computation-intensive and faster to open, and there is a more direct correspondence between changes to items in the PDF page description and changes to the resulting appearance of the page.
* Object transparency: PDF (starting from version 1.4) supports true transparency while PostScript does not.
* Font substitution: If displayed with Adobe Reader, a font-substitution strategy ensures the document will be readable even if the end-user does not have the "proper" fonts installed. PDF also allows font embedding to ensure that the "proper" fonts are displayed. While this is possible with PostScript, such files cannot normally be distributed freely because of font licensing agreements.
* Independent pages: PostScript is an imperative programming language (with an implicit global state), so instructions with one page can affect the appearance of any following page. It is therefore necessary to interpret all the preceding pages in order to determine the appearance of any given page. Each page in a PDF document is unaffected by any others.
When PDF first came out in the early 1990s, it was slow to catch on. At the time, not only did the only PDF creation tools of the time (Acrobat) cost money, but so did the software to view and print PDF files. Early versions of PDF had no support for external hyperlinks, reducing its usefulness on the web. Additionally, there were competing formats such as Envoy, Common Ground Digital Paper, DjVu and even Adobe's own PostScript format (.ps). Adobe soon started distributing the Acrobat Reader (now Adobe Reader) program at no cost, and continued to support PDF through its slow multi-year ramp-up. Competing formats eventually died out, and PDF became a well-accepted standard.
In 2005 Microsoft presented a similar fixed-layout document format named XML Paper Specification (XPS). XPS is based on XAML, and is distributed along a royalty-free license. XPS support is scheduled to be included in Microsoft Windows Vista.
Mac OS X
PDF was selected as the "native" metafile format for Mac OS X, replacing the PICT format of the earlier Mac OS. The imaging model of the Quartz graphics layer of Mac OS X is based on the model common to Display PostScript and PDF, and is sometimes somewhat confusingly referred to as Display PDF. Due to OS support, all OS X applications can create PDF documents automatically as long as they support the "print" command.
PDF and accessibility
One can create PDF files that are accessible to people with disabilities. Current PDF file formats can include tags (essentially XML), text equivalents, captions and audio descriptions, and other accessibility features. Some software, such as Adobe InDesign, can output tagged PDFs automatically. Leading screen readers, including Jaws, Window-Eyes, and Hal, can read tagged PDFs; current versions of the Acrobat and Acrobat Reader programs can also read PDFs out loud. Moreover, tagged PDFs can be reflowed and zoomed for low-vision readers.
However, many problems remain, not least of which is the difficulty in adding tags to existing or "legacy" PDFs; for example, if PDFs are generated from scanned documents, accessibility tags and reflowing are unavailable and must be created either by hand or using OCR techniques. Also, these processes themselves are often inaccessible to some people with disabilities. Nonetheless, well-made PDFs can be a valid choice as long-term accessible documents. The PDF/Universal Access Committee, an activity of AIIM, is working on a specification for PDF accessibility based on the PDF 1.6 specification.
Microsoft Word documents can be converted into accessible PDFs, but only if the Word document is written with accessibility in mind - for example, using styles, correct paragraph mark-up and "alt" (alternative) text for images, and so on.
PDF on the Web
Documents described in markup languages such as HTML/XHTML delegate responsibility for many display decisions to the renderer. This means that an XHTML document can render quite differently across various web browser platforms, adapting to the display device (screen/page size, visual or audio or braille rendering). However, even with a given output device and a document that fully specifies its fonts and sizes of borders etc., the appearance of an XHTML document will vary more than the appearance of a PDF document (because of various freedoms that the XHTML specification leaves to implementations: e.g. different font hinting choices lead to different word widths, which influence how many words fit on each line). The desire for greater control over user experience has led many authors to use the more rigid PDF specification to publish online content. This is particularly true for order forms, catalogues, brochures, and other documents which are primarily formatted for printing. The wide availability of Adobe Reader and easy-to-use WYSIWYG PDF authoring have further enticed many (mostly corporate) web authors to publish a wider variety of information as PDF.
Critics of this practice cite several reasons for avoiding it. The major one is that the inflexibility of PDF rendering makes it difficult to read on screen: it does not adapt to the window size nor the reader's preferred font size and font family, as classic XHTML web page does. PDF files tend to be significantly larger than XHTML/SVG files presenting the same information, making it difficult or impossible for users with low-bandwidth connections to view them. Adobe Reader, the de facto standard PDF viewer, has historically been slow to start and caused browser instability, particularly when run alongside other browser plugins (Adobe Reader 7 addressed many of these concerns, but is not available under Windows 98/ME). Adobe Reader is also unavailable in current versions on many alternative operating systems and is distributed under a proprietary license unacceptable to some users. During each major release of Adobe (Acrobat) Reader, the installer package gets significantly larger to support extra features, but users are left without means to selectively install components.