Portable Document Format
Portable Document Format (PDF) is a file format developed by Adobe Systems for representing documents in a manner that is independent of the original application software, hardware, and operating system used to create those documents. A PDF file can describe documents containing any combination of text, graphics, and images in a device independent and resolution independent format. These documents can be one page or thousands of pages, very simple or extremely complex with a rich use of fonts, graphics, colour, and images. PDF is an open standard, and anyone may write applications that can read or write PDFs royalty-free.
Free readers for many platforms are available for download from the Adobe website, and there are several free open source readers, including Xpdf for POSIX-like systems with the X Window System; GPdf, a derivative of Xpdf for GNOME; GSPdf and ViewPDF, for GNUstep; and front-ends for many platforms to Ghostscript.
Table of contents
PDF is primarily the combination of three technologies:
- a cut-down form of PostScript 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 into a single file, with data compression where appropriate.
PDF is a subset of those PostScript language elements that define the graphics, and only requires a very simple interpreter. For instance, flow control commands like
loop are removed, while graphics commands such as
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 the PS code outputs are collected and tokenized, any files, graphics or fonts the document references are also collected, and then everything is compressed into a single file.
As a document format, PDF has several advantages over PostScript. One is that a document resides in a single file, whereas the same document in PostScript may span multiple files (graphics, etc.) and probably occupies more space. In addition, 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. Also, PDF (starting from version 1.4) supports true object transparency while PostScript does not. Finally, 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.
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. Additionally, there were competing formats such as Envoy, Common Ground Digital Paper, DjVu and even Adobe's own PostScript file format (.ps). Adobe started distributing the Acrobat 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 competing format referenced by the code name "Metro". It is developed together with Global Graphics. Metro is based on XML, but requires a license. Metro is sceduled to be included in the next version of MS Windows with the codename "Longhorn".
PDF was selected as the "native" metafile format for Mac OS X, replacing the PICT format of the earlier Mac OS. Mac OS X's imaging model, Quartz 2D, is based on both the Display PostScript standard and PDF, and is sometimes 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
PDF can be 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. Moreover, that process itself is inaccessible. Nonetheless, well-made PDFs can be a valid choice as long-term accessible documents. (Work is being done on a PDF variant based on PDF 1.4. The PDF/A or PDF-Archive is specifically scaled down for archival purposes.)
Comparison between PDF and HTML
HTML is a method for describing the content of a webpage in a manner that is open to interpretation by the browser which renders it on the user's screen. This permits content to be rendered to suit the viewer rather than the content provider, and also means that an HTML file will not necessarily look exactly the same in different browsers. PDF without applying reflow, on the other hand, is strictly concerned with describing the content of a document such that the original layout and typesetting are fully preserved.
Since many content providers do not like the fluid nature of HTML rendering, PDF without reflow has been widespread to force a particular layout. With HTML the same can be achieved by using a raster graphics (or recently, SVG, a vector graphics standard) image to present text, but then the text can not be copied as such, nor can a subtext be searched within it. Use of images also leads to larger file sizes. (Sometimes the same is done in a PDF file, and the same disadvantages apply.)
A typical example of the differences this leads to for the viewer is with zooming:
- Enlarging a PDF document without reflow magnifies the text but preserves the original layout and spacing; a practical limit on zooming follows from the requirement to keep a text column within the width of the screen (otherwise horizontal scrolling would be needed during and after reading each line, which would be very cumbersome).
- With HTML and tagged PDF with reflow, a larger font size is used and lines re-wrap accordingly to fit the browser window.
Searching for a text in a collection of files
Adobe Acrobat Reader 6.0 allows searching a collection of PDF files.
Using a search program to search for a text in a collection of files of different types, it may or may not be possible to also search PDF files, depending on the program. This is because the text is stored in coded form, and a program searching for some text must interpret the code and search the result, not just search the code. Search programs that do not work include that of Windows XP and Agent Ransack. However, for searching the Web, some search engines, such as Google and Yahoo!, include PDF files in searches. The option to view the PDF in HTML format is also commonly offered (this conversion does not include images).
Mac OS X, having PDF as a core element of the operating system, fully supports searching PDF files with the Preview application, used to view PDF files. The Spotlight feature in Mac OS X 10.4 extends this ability across the whole operating system, allowing information in PDF files (as well as almost all others) to be found from a single search box.
Types of content
- vector graphics for coastlines, lakes, rivers, highways, markings of cities, and Interstate highway symbols – on zooming in, the curves remain sharp, they do not appear as consisting of enlarged pixels (i.e. rectangles of pixels)
- text stored as such – scalable, and also one can copy the text
- raster graphics for showing mountain relief – on zooming in, this consists of enlarged pixels (the blue of the sea and lakes is "filled" neatly to the vector graphics coast line, hence not in raster graphics).
An example of a PDF map without raster graphics is the CIA World Factbook's map of the Arctic. In the same publication's European map, the blue of the sea is not "filled" neatly to the vector graphics coast line, but just raster graphics, giving a cruder result (noticeable when highly zoomed in).
Tools exist, such as pdfimages (bundled with Xpdf) to extract the raster images from a PDF file. This can be extremely useful if the PDF is simply a collection of scanned pages.
- Display PostScript
- Scalable Vector Graphics
- OpenOffice.org – Can transform many types of documents into PDF documents.
- Panda library
- Adobe: Postscript vs. PDF
- PDF Specification also available as a book describing PDF 1.4 (ISBN 0201758393)
- PDF/X Frequently asked questions
- Planet PDF
- The Camelot Paper – the paper in which John Warnock outlined the project that created PDF
- PDF Zone – A lot of information and news regarding all aspects of PDF. Includes a buyer's guide for PDF and document management software.
- PDF-Worker – A directory of PDF programs and resources.
- iText – Converter in Java.
- PDFlib – leading programming library for automatically generating PDF on the server (broad languages and platform support).
- gnujpdf – Java converter.
- Panda library
- Xpdf – A PDF viewer.
- PDFTOHTML – A PDF to HTML convertor. Based on Xpdf.
- DDAP – Lots of information about PDF/X formats designed for reliable exchange of documents for printing including the popular PDF/X-1a and PDF/X-3.
- AIIM – Information about PDF/A specification for archiving.
- Several solutions of UNIVERSE Software – Creation and processing of PDF forms and files
- Create Adobe PDF Online – Online service for creating PDF files from many different document types, including Microsoft Word.
Free and open source software
- PDFCreator – A GPL/AFPL PDF printer driver for Windows.
- Doc2pdf – Conversion by email robot.
- libharu – Converter in C/C++.
- OpenOffice.org – Can transform many types of documents into PDF documents.
- sharpPDF – C# PDF library.
- POM – An open source java tool for merging PDF files.
- WikiPDF – A tool to convert MediaWiki articles to PDF.
- PJX – A Java package for general PDF programming
- PDF::API2 & PDF::MAKI – A Perl module for manipulating PDF files
- CutePDF – Freeware PDF creator, without any ads in the output.
- Reportlabs – OpenSource PDF creator using the Python language
- Scribus – A desktop publishing software with PDF output.
- Primo PDF – Free PDF Virtual Printer for Windows (LGPL)
- Preview 3 – PDF viewer for Mac OS X
- Evince – A document viewer for GNOME that can view PDF-files.
- GPdf – PDF viewer for GNOME
- Xpdf – PDF viewer for the X Window System
- KPDF – Xpdf-based PDF viewer for KDE
- Adobe® Reader – Adobe's PDF Reader
- Foxit – Free small and fast PDF reader (Windows)
- JPedal Multiplatform PDF viewer written in Java, free. A proprietary version also exists.
Closed source software
- Go2PDF – Freeware virtual printer driver.