PDF: A Comprehensive Overview
PDF: A Comprehensive Overview
Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by
Adobe in 1992 to present documents, including text formatting and images, in a manner
independent of application software, hardware, and operating systems.[2][3] 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 has its roots in "The Camelot Project" initiated by Adobe co-founder John
Warnock in 1991.[4] PDF was standardized as ISO 32000 in 2008.[5] The last edition as ISO
32000-2:2020 was published in December 2020.
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 (including video content), 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
The development of PDF began in 1991 when John Warnock wrote a paper for a project then
code-named Camelot, in which he proposed the creation of a simplified version of PostScript
called Interchange PostScript (IPS).[6] Unlike traditional PostScript, which was tightly focused on
rendering print jobs to output devices, IPS would be optimized for displaying pages to any screen
and any platform.[6]
Adobe Systems 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 several other
formats, including 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,[7][8] 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 necessary to make, use, sell, and distribute
PDF-compliant implementations.[9]
PDF 1.7, the sixth edition of the PDF
Portable Document Format
specification that became ISO 32000-1,
includes some proprietary technologies
defined only by Adobe, such as Adobe XML
Forms Architecture (XFA) 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
Adobe PDF icon
specification.[10] These proprietary
technologies are not standardized, and their Filename extension .pdf
graphics, text, and bitmap graphics. The basic Standard ISO 32000-2
types of content in a PDF are:
Open format? Yes
Typeset text stored as content streams (i.e.,
Website iso.org/standard
not encoded in plain text); /75839.html (https://i
so.org/standard/758
Vector graphics for illustrations and designs
39.html)
that consist of shapes and lines;
A structured storage system to bundle these elements and any associated content into a
single file, with data compression where appropriate.
PostScript language
PostScript was originally designed for a drastically different use case: transmission of one-way
linear print jobs in which the PostScript interpreter would collect a series of commands until it
encountered the showpage command, then execute all the commands to render a page as a
raster image to a printing device.[17] PostScript was not intended for long-term storage and real-
time interactive rendering of electronic documents to computer monitors, so there was no need
to support anything other than consecutive rendering of pages.[17] If there was an error in the
final printed output, the user would correct it at the application level and send a new print job in
the form of an entirely new PostScript file. Thus, any given page in a PostScript file could be
accurately rendered only as the cumulative result of executing all preceding commands to draw
all previous pages—any of which could affect subsequent pages—plus the commands to draw
that particular page, and there was no easy way to bypass that process to skip around to
different pages.[17]
Traditionally, to go from PostScript to PDF, a source PostScript file (that is, an executable
program) is used as the basis for generating PostScript-like PDF code (see, e.g., Adobe Distiller).
This is done by applying standard compiler techniques like loop unrolling, inlining and removing
unused branches, resulting in code that is purely declarative and static.[17] The end result is then
packaged into a container format, together with all necessary dependencies for correct rendering
(external files, graphics, or fonts to which the document refers), and compressed. Modern
applications write to printer drivers that directly generate PDF rather than going through
PostScript first.
As a document format, PDF has several advantages over PostScript:
PDF contains only static declarative PostScript code that can be processed as data, and does
not require a full program interpreter or compiler.[17] This avoids the complexity and security
risks of an engine with such a higher complexity level.
Like Display PostScript, PDF has supported transparent graphics since version 1.4, while
standard PostScript does not.
PDF enforces the rule that the code for any particular page cannot affect any other pages.[17]
That rule is strongly recommended for PostScript code too, but has to be implemented
explicitly (see, e.g., the Document Structuring Conventions), as PostScript is a full
programming language that allows for such greater flexibilities and is not limited to the
concepts of pages and documents.
All data required for rendering is included within the file itself, improving portability.[18]
File format
A PDF file is organized using ASCII characters, except for certain elements that may have binary
content. The file starts with a header containing a magic number (as a readable string) and the
version of the format, for example %PDF-1.7 . The format is a subset of a COS ("Carousel"
Object Structure) format.[23] A COS tree file consists primarily of objects, of which there are nine
types:[16]
Real numbers
Integers
Streams, usually containing large amounts of optionally compressed binary data, preceded by
a dictionary and enclosed between the stream and endstream keywords.
Comments using 8-bit characters prefixed with the percent sign ( % ) may be inserted.
Objects may be either direct (embedded in another object) 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 (except other streams) may also be located in special streams known as object streams
(marked /Type /ObjStm ). 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 (other than 0).
An index table, also called the cross-reference table, is located near the end of the file and gives
the byte offset of each indirect object from the start of the file.[24] 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 (incremental update). 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 (using the /W array), so that
for example, a document not exceeding 64 KiB in size may dedicate only 2 bytes for object
offsets.
The startxref keyword followed by an offset to the start of the cross-reference table
(starting with the xref keyword) or the cross-reference stream object, followed by
If a cross-reference stream is not being used, the footer is preceded by the 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 ( /Root )
Within each page, there are one or multiple content streams that describe the text, vector and
images being drawn on the page. The content stream is stack-based, similar to PostScript.[25]
There are two layouts to the PDF files: non-linearized (not "optimized") and linearized
("optimized"). Non-linearized PDF files can be smaller than their linear counterparts, though they
are slower to access because portions of the data required to assemble pages of the document
are scattered throughout the PDF file. Linearized PDF files (also called "optimized" or "web
optimized" PDF files) are constructed in a manner that enables them to be read in a Web browser
plugin without waiting for the entire file to download, since all objects required for the first page
to display are optimally organized at the start of the file.[26] PDF files may be optimized using
Adobe Acrobat software or QPDF.
Page dimensions are not limited by the format itself. However, Adobe Acrobat imposes a limit of
15 million by 15 million inches, or 225 trillion in2 (145,161 km2).[2]: 1129
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 (as of version 2.0) 25
graphics state properties, of which some of the most important are:
The current transformation matrix (CTM), which determines the coordinate system
Vector graphics
As in PostScript, vector graphics in PDF are constructed with paths. Paths are usually composed
of lines and cubic Bézier curves, but can also be constructed from the outlines of text. Unlike
PostScript, PDF does not allow a single path to mix text outlines with lines and curves. Paths can
be stroked, filled, fill then stroked, or used for clipping. Strokes and fills can use any color set in
the graphics state, including patterns. 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 patterns of which the simplest are the axial shading (Type 2) and radial shading (Type 3).
Raster images
Raster images in PDF (called Image XObjects) are represented by dictionaries with an associated
stream. The dictionary describes the properties of the image, and the stream contains the image
data. (Less commonly, small raster images may be embedded directly in a page description as
an inline image.) Images are typically filtered for compression purposes. Image filters supported
in PDF include the following general-purpose filters:
FlateDecode, a commonly used filter based on the deflate algorithm defined in RFC 1951 (http
s://datatracker.ietf.org/doc/html/rfc1951) (deflate is also used in the gzip, PNG, and zip file
formats among others); 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 (filters) from the PNG specification (RFC 2083 (https://datatracke
r.ietf.org/doc/html/rfc2083) ),
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 (filters) 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,
JBIG2Decode, a lossy or lossless bi-level (black/white) 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.
Normally all image content in a PDF is embedded in the file. But PDF allows image data to be
stored in external files by the use of external streams or Alternate Images. Standardized subsets
of PDF, including PDF/A and PDF/X, prohibit these features.
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.
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 (and its compressed
variant CFF), TrueType, and (beginning with PDF 1.6) OpenType. Additionally PDF supports the
Type 3 variant in which the components of the font are described by PDF graphic operators.
Fourteen typefaces, known as the standard 14 fonts, have a special significance in PDF
documents:
Symbol
Zapf Dingbats
These fonts are sometimes called the base fourteen fonts.[27] 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.[28] Fonts may be substituted if they are not embedded in a PDF.
Within text strings, characters are shown using character codes (integers) that map to glyphs in
the current font using an encoding. There are several predefined encodings, including WinAnsi,
MacRoman, and many encodings for East Asian languages and a font can have its own built-in
encoding. (Although the WinAnsi and MacRoman encodings are derived from the historical
properties of the Windows and Macintosh operating systems, fonts using these encodings work
equally well on any platform.) 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 (not
recommended with TrueType fonts).[2] 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 (for horizontal
writing) and Identity-V (for vertical) are used. With such fonts, it is necessary to provide a
ToUnicode table if semantic information about the characters is to be preserved.
A text document which is scanned to PDF without the text being recognised by optical character
recognition (OCR) is an image, with no fonts or text properties.
Transparency
The original imaging model of PDF was opaque, similar to PostScript, where 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 PDF 1.3 and earlier specifications. As a result, files that use a small amount
of transparency might be viewed acceptably by older viewers, but files making extensive use of
transparency could be viewed incorrectly by an older viewer.
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.[29]
A tagged PDF (see clause 14.8 in ISO 32000) includes document structure and semantics
information to enable reliable text extraction and accessibility.[30] 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 (text, graphics, and images) to be extracted and reused for other purposes.[31]
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 among consuming devices, including assistive technology (AT), is
uneven as of 2021.[32] ISO 32000-2, however, includes an improved discussion of tagged PDF
which is anticipated to facilitate further adoption.
With the introduction of PDF version 1.5 (2003) came the concept of Layers. Layers, more
formally known as Optional Content Groups (OCGs), refer to sections of content in a PDF
document that can be selectively viewed or hidden by document authors or viewers. 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 (OCGs), 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 (Displayed or Suppressed) of
the given OCGs.
A PDF file may be encrypted, for security, in which case a password is needed to view or edit the
contents. PDF 2.0 defines 256-bit AES encryption as the 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, to provide secure authentication; complete details on
implementing digital signatures in PDF are 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.
The standard security provided by 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.[33] 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.[34][35][36]
Beginning with PDF 1.5, Usage rights (UR) 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:[37]
To save the PDF document along with a modified form or annotation data
Import form data files in FDF, XFDF, and text (CSV/TSV) formats
For example, Adobe Systems grants permissions to enable additional features in Adobe Reader,
using public-key cryptography. Adobe Reader verifies that the signature uses a certificate from
an Adobe-authorized certificate authority. Any PDF application can use this same mechanism for
its own purposes.[37]
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.[38]
PAdES (PDF Advanced Electronic Signatures) is a set of restrictions and extensions to PDF and
ISO 32000-1[39] making it suitable for advanced electronic signatures. This is published by ETSI
as TS 102 778.[40]
File attachments
PDF files can have file attachments which processors may access and open or save to a local
filesystem.[41]
Metadata
PDF files can contain two types of metadata.[2] The first is the Document Information Dictionary,
a set of key/value fields such as author, title, subject, creation and update dates. This is optional
and is referenced from an Info key in the 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
(XMP) to add XML standards-based extensible metadata as used in other file formats. PDF 2.0
allows metadata to be attached to any object in the document, such as information about
embedded illustrations, fonts, and images, as well as the whole document (attaching to the
document catalog), using an extensible schema.
PDF documents can also contain display settings, including the page display layout and zoom
level in a Viewer Preferences object. Adobe Reader uses these settings to override the user's
default settings when opening the document.[42] The free Adobe Reader cannot remove these
settings.
Accessibility
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 (i) the physical view, (ii) the tags view, and (iii) the content view. The physical
view is displayed and printed (what most people consider a PDF document). The tags view is
what screen readers and other assistive technologies use to deliver 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.
Multimedia
Rich Media PDF is a PDF file including interactive content that can be embedded or linked within
the file. It can contain images, audio, video content, or buttons. For example, if the interactive
PDF is a digital catalog for an E-commerce business, products can be listed on the PDF pages
and can be added with images and links to the website and buttons to order directly from the
document.
Forms
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:[37][52][53][54]
AcroForms (also known as Acrobat forms), introduced in the PDF 1.2 format specification and
included in all later PDF specifications.
XML Forms Architecture (XFA) forms, introduced in the PDF 1.5 format specification. Adobe
XFA Forms are not compatible with AcroForms.[55] XFA was deprecated from PDF with PDF
2.0.
AcroForms were introduced in the PDF 1.2 format. AcroForms permit the uses of objects (e.g.
text boxes, Radio buttons, etc.) and some code (e.g. JavaScript). Alongside the standard PDF
action types, interactive forms (AcroForms) 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 (URL). Interactive form field names and values may be
submitted in any of the following formats, (depending on the settings of the action's
ExportFormat, SubmitPDF, and XFDF flags):[37]
The entire document can be submitted rather than individual fields and values, as was defined in
PDF 1.4.
AcroForms can keep form field values in external stand-alone files containing key-value pairs.
The external files may use Forms Data Format (FDF) and XML Forms Data Format (XFDF)
files.[58][56][59] The usage rights (UR) signatures define rights for import form data files in FDF,
XFDF, and text (CSV/TSV) formats, and export form data files in FDF and XFDF formats.[37]
In PDF 1.5, Adobe Systems introduced a proprietary format for forms; Adobe XML Forms
Architecture (XFA). 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 (PDF 2.0).
Licensing
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.[60]
Security
Changes to content
In November 2019, researchers from Ruhr University Bochum and Hackmanit GmbH published
attacks on digitally signed PDFs.[61] They showed how to change the visible content in a signed
PDF without invalidating the signature in 21 of 22 desktop PDF viewers and 6 of 8 online
validation services by abusing implementation flaws. At the same conference, they additionally
showed how to exfiltrate the plaintext of encrypted content in PDFs.[62] In 2021, they showed new
so-called shadow attacks on PDFs that abuse the flexibility of features provided in the
specification.[63] An overview of security issues in PDFs regarding denial of service, information
disclosure, data manipulation, and arbitrary code execution attacks was presented by Jens
Müller.[64][65]
Malware vulnerability
PDF files can be infected with viruses, Trojans, and other malware. They can have hidden
JavaScript code that might exploit vulnerabilities in a PDF, hidden objects executed when the file
that hides them is opened, and, less commonly, a malicious PDF can launch malware.[66]
PDF attachments carrying viruses were first discovered in 2001. The virus, named
OUTLOOK.PDFWorm or Peachy, uses Microsoft Outlook to send itself as an attached Adobe PDF
file. It was activated with Adobe Acrobat, but not with Acrobat Reader.[67]
From time to time, new vulnerabilities are discovered in various versions of Adobe Reader,[68]
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.[69] 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.[70]
Software
Many PDF viewers are provided free of charge from a variety of sources. Programs to manipulate
and edit PDF files are available, usually for purchase.
There are many software options for creating PDFs, including the PDF printing capabilities built
into macOS, iOS,[71] and most Linux distributions. Much document processing software including
LibreOffice, Microsoft Office 2007 (if updated to SP2) and later,[72] WordPerfect 9, and Scribus
can export documents in PDF format. There are many 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, that allow a "PDF printer" to be set up, which when selected sends
output to a PDF file instead of a physical printer. Google's online office suite Google Docs allows
uploading and saving to PDF. Some web apps offer free PDF editing and annotation tools.
The Free Software Foundation was "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", as one of its high priority projects.[73][74] In 2011, however, the GNU PDF
project was removed from the list of "high priority projects" due to the maturation of the Poppler
library,[75] which has enjoyed wider use in applications such as Evince with the GNOME desktop
environment. Poppler is based on Xpdf[76][77] 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,
licensed under the Apache License, for working with PDF documents.[78]
Printing
Raster image processors (RIPs) 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 rasterization. RIPs capable of processing PDF directly include the Adobe PDF
Print Engine[79] from Adobe Systems and Jaws[80] and the Harlequin RIP from Global Graphics.
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 its Harlequin RIP with the same capability in 1997.[81]
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.[82] The submission of
press-ready PDF files is a replacement for the problematic need for receiving collected native
working files.
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.[83]
Some desktop printers also support direct PDF printing, which can interpret PDF data without
external help.
PDF was selected as the "native" metafile format for macOS (originally called 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 macOS 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 behavior can be set back to PDF if
desired.
Annotation
Adobe Acrobat 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
(under the GNU General Public License) 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 document
formats. In cases where PDFs are expected to have all of the functionality of paper documents,
ink annotation is required.
PDF's emphasis on preserving the visual appearance of documents across different software
and hardware platforms poses challenges to the conversion of PDF documents to other file
formats and the targeted extraction of information, such as text, images, tables, bibliographic
information, and document metadata. Numerous tools and source code libraries support these
tasks. Several labeled datasets to test PDF conversion and information extraction tools exist and
have been used for benchmark evaluations of the tool's performance.[84]
Alternatives
The Open XML Paper Specification is a competing format used both as a page description
language and as the native print spooler format for Microsoft Windows since Windows Vista.
See also
Web page
PDF portfolio
References
1. Hardy, M.; Masinter, L.; Markovic, D.; Johnson, D.; Bailey, M. (March 2017). The
application/pdf Media Type (https://datatracker.ietf.org/doc/html/rfc8118) . IETF.
doi:10.17487/RFC8118 (https://doi.org/10.17487%2FRFC8118) . RFC 8118 (https://datatr
acker.ietf.org/doc/html/rfc8118) .
3. Warnock, J. (October 14, 2004) [Original date 5 May 1995]. "The Camelot Project" (https://w
ww.pdfa.org/norm-refs/warnock_camelot.pdf) (PDF). Archived (https://web.archive.org/w
eb/20110718230852/http://www.planetpdf.com/planetpdf/pdfs/warnock_camelot.pdf)
(PDF) from the original on July 18, 2011.
6. Pfiffner, Pamela (2003). Inside the Publishing Revolution: The Adobe Story. Berkeley:
Peachpit Press. p. 137. ISBN 0-321-11564-3.
10. "Guide for the procurement of standards-based ICT – Elements of Good Practice, Against
lock-in: building open ICT systems by making better use of standards in public
procurement" (https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=SWD:2013:0224:FIN:
EN:PDF) . European Commission. June 25, 2013. Archived (https://web.archive.org/web/2
0200919174545/https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=SWD:2013:0224:FI
N:EN:PDF) from the original on September 19, 2020. Retrieved January 12, 2023.
"Example: ISO/IEC 29500, ISO/IEC 26300 and ISO 32000 for document formats reference
information that is not accessible by all parties (references to proprietary technology and
brand names, incomplete scope or dead web links)."
16. "ISO 32000-2 – Document management — Portable document format — Part 2: PDF 2.0" (ht
tps://www.iso.org/standard/75839.html) . ISO. January 5, 2021. Archived (https://web.arc
hive.org/web/20210128003836/https://www.iso.org/standard/75839.html) from the
original on January 28, 2021. Retrieved February 3, 2021.
17. Pfiffner, Pamela (2003). Inside the Publishing Revolution: The Adobe Story. Berkeley:
Peachpit Press. p. 139. ISBN 0-321-11564-3.
19. Anton Ertl, Martin. "What is the PDF format good for?" (https://www.complang.tuwien.ac.at/
anton/why-not-pdf.html) . complang.tuwien.ac.at. Vienna University of Technology.
Archived (https://web.archive.org/web/20240404031526/https://www.complang.tuwien.ac.
at/anton/why-not-pdf.html) from the original on April 4, 2024. Retrieved April 8, 2024.
23. Pravetz, Jim. "In Defense of COS, or Why I Love JSON and Hate XML" (https://web.archive.or
g/web/20140502013429/http://jimpravetz.com/blog/2012/12/in-defense-of-cos/) .
jimpravetz.com. Archived from the original on May 2, 2014.
26. "Adobe Developer Connection: PDF Reference and Adobe Extensions to the PDF
Specification" (https://web.archive.org/web/20061115132507/https://www.adobe.com/dev
net/pdf/pdf_reference.html) . Adobe Systems Inc. Archived from the original (https://www.
adobe.com/devnet/pdf/pdf_reference.html) on November 15, 2006. Retrieved
December 13, 2010.
28. Merz, Thomas (June 2003). "The PDF Font Aquarium" (https://web.archive.org/web/201107
18231502/http://www.planetpdf.com/planetpdf/pdfs/pdf2k/03e/merz_fontaquarium.pdf)
(PDF). Archived from the original on July 18, 2011.
31. Johnson, Duff (April 22, 2004). "What is Tagged PDF?" (https://www.talkingpdf.org/what-is-t
agged-pdf/) . Archived (https://web.archive.org/web/20040807132851/http://www.planet
pdf.com/enterprise/article.asp?ContentID=6067) from the original on August 7, 2004.
32. "Is PDF accessible?" (https://www.washington.edu/doit/pdf-accessible?1002=) . DO-IT -
Disabilities, Opportunities, Internetworking, and Technology. University of Washington.
October 4, 2022. Archived (https://web.archive.org/web/20230210114239/https://www.wa
shington.edu/doit/pdf-accessible?1002=) from the original on February 10, 2023.
Retrieved January 12, 2023.
34. Kirk, Jeremy (December 4, 2008). "Adobe admits new PDF password protection is weaker"
(http://www.macworld.com/article/1137343/pdf.html) . Macworld. IDG Communications
Inc. Archived (https://web.archive.org/web/20170117225255/http://www.macworld.com/a
rticle/1137343/pdf.html) from the original on January 17, 2017. Retrieved September 14,
2016.
36. Merz, Thomas (November 2001). PDF Security Overview: Strengths and Weaknesses (https://
web.archive.org/web/20101011050457/http://www.planetpdf.com/planetpdf/pdfs/pdf2k/0
1W/merz_securitykeynote.pdf) (PDF). PDF 2001 conference. Scottsdale/Arizona.
Archived from the original on October 11, 2010.
37. Adobe Systems Inc. (July 1, 2008). "Document Management – Portable Document Format
– Part 1: PDF 1.7, First Edition" (https://web.archive.org/web/20081203002256/https://ww
w.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf) (PDF). Archived from the
original (https://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf) (PDF) on
December 3, 2008. Retrieved January 12, 2023.
39. "ISO 32000-1:2008 Document management -- Portable document format -- Part 1: PDF 1.7"
(http://www.iso.org/iso/catalogue_detail.htm?csnumber=51502) . International
Organization for Standardization ISO. Archived (https://web.archive.org/web/20170210072
051/http://www.iso.org/iso/catalogue_detail.htm?csnumber=51502) from the original on
February 10, 2017. Retrieved March 22, 2016.
40. "ETSI TS 102 778-1 - Electronic Signatures and Infrastructures (ESI); PDF Advanced
Electronic Signature Profiles; Part 1: PAdES Overview - a framework document for PAdES" (h
ttp://www.etsi.org/deliver/etsi_ts%5C102700_102799%5C10277801%5C01.01.01_60%5Cts
_10277801v010101p.pdf) (PDF). 1.1.1. European Telecommunications Standards
Institute ETSI. July 2009. Archived (https://web.archive.org/web/20230308052536/https://
www.etsi.org/deliver/etsi_ts%5C102700_102799%5C10277801%5C01.01.01_60%5Cts_102
77801v010101p.pdf) (PDF) from the original on March 8, 2023. Retrieved January 12,
2023.
42. "Getting Familiar with Adobe Reader > Understanding Preferences" (http://www.adobepress.
com/articles/article.asp?p=412914) . Adobe Press. Pearson. September 2, 2005. Archived
(https://web.archive.org/web/20121023144614/https://www.adobepress.com/articles/arti
cle.asp?p=412914) from the original on October 23, 2012. Retrieved January 12, 2023.
44. Clark, Joe (August 22, 2005). "Facts and Opinions About PDF Accessibility" (http://www.alis
tapart.com/articles/pdf_accessibility) . Archived (https://web.archive.org/web/201301241
40051/http://alistapart.com/articles/pdf_accessibility) from the original on January 24,
2013. Retrieved January 12, 2023.
49. Z., Andrew (January 11, 2008). "Exporting PDF/A for long-term archiving" (http://www.oooni
nja.com/2008/01/generating-pdfa-for-long-term-archiving.html) . Archived (https://web.ar
chive.org/web/20210224185200/https://www.oooninja.com/2008/01/generating-pdfa-for-l
ong-term-archiving.html) from the original on February 24, 2021. Retrieved September 22,
2012.
50. Biersdorfer, J.D. (April 10, 2009). "Tip of the Week: Adobe Reader's 'Read Aloud' Feature" (htt
p://gadgetwise.blogs.nytimes.com/2009/04/10/tip-of-the-week-adobe-readers-read-aloud-f
eature/) . The New York Times. Archived (https://web.archive.org/web/20201122205912/h
ttps://gadgetwise.blogs.nytimes.com/2009/04/10/tip-of-the-week-adobe-readers-read-alou
d-feature/) from the original on November 22, 2020. Retrieved January 12, 2023.
51. "Accessing PDF documents with assistive technology: A screen reader user's guide" (http
s://web.archive.org/web/20080728093103/https://www.adobe.com/accessibility/pdfs/acc
essing-pdf-sr.pdf) (PDF). Adobe Systems Inc. Archived from the original (https://www.ado
be.com/accessibility/pdfs/accessing-pdf-sr.pdf) (PDF) on July 28, 2008. Retrieved
January 12, 2023.
54. Demling, Peter (July 1, 2008). "Convert XFA Form to AcroForm?" (https://community.adobe.
com/t5/acrobat-sdk-discussions/convert-xfa-form-to-acroform/td-p/1175365) . Archived
(https://web.archive.org/web/20230112153241/https://community.adobe.com/t5/acrobat-
sdk-discussions/convert-xfa-form-to-acroform/td-p/1175365) from the original on
January 12, 2023. Retrieved January 12, 2023.
58. Adobe Systems Incorporated (September 20, 2022). "Using Acrobat forms and form data on
the web" (https://helpx.adobe.com/acrobat/kb/acrobat-forms-form-data-web.html) .
Archived (https://web.archive.org/web/20230112153235/https://helpx.adobe.com/acroba
t/kb/acrobat-forms-form-data-web.html) from the original on January 12, 2023. Retrieved
January 12, 2023.
61. Mladenov, Vladislav; Mainka, Christian; Meyer Zu Selhausen, Karsten; Grothe, Martin;
Schwenk, Jörg (November 6, 2019). "1 Trillion Dollar Refund: How to Spoof PDF Signatures".
Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications
Security (https://dl.acm.org/doi/10.1145/3319535.3339812) . CCS '19. ACM Digital
Library, ACM SIGSAC Conference on Computer and Communications Security. pp. 1–14.
doi:10.1145/3319535.3339812 (https://doi.org/10.1145%2F3319535.3339812) .
ISBN 9781450367479. S2CID 199367545 (https://api.semanticscholar.org/CorpusID:19936
7545) . Archived (https://web.archive.org/web/20210426223722/https://dl.acm.org/doi/1
0.1145/3319535.3339812) from the original on April 26, 2021. Retrieved April 6, 2021.
62. Müller, Jens; Ising, Fabian; Mladenov, Vladislav; Mainka, Christian; Schinzel, Sebastian;
Schwenk, Jörg (November 6, 2019). "Practical Decryption exFiltration: Breaking PDF
Encryption". Proceedings of the 2019 ACM SIGSAC Conference on Computer and
Communications Security (https://dl.acm.org/doi/10.1145/3319535.3354214) . CCS '19.
ACM Digital Library, ACM SIGSAC Conference on Computer and Communications Security.
pp. 15–29. doi:10.1145/3319535.3354214 (https://doi.org/10.1145%2F3319535.335421
4) . ISBN 9781450367479. S2CID 207959243 (https://api.semanticscholar.org/CorpusID:2
07959243) . Archived (https://web.archive.org/web/20210426223415/https://dl.acm.org/
doi/10.1145/3319535.3354214) from the original on April 26, 2021. Retrieved April 6,
2021.
63. "Shadow Attacks: Hiding and Replacing Content in Signed PDFs" (https://www.ndss-sympos
ium.org/ndss-paper/shadow-attacks-hiding-and-replacing-content-in-signed-pdfs/) .
Internet Society, The Network and Distributed System Security Symposium. Archived (http
s://web.archive.org/web/20210421094100/https://www.ndss-symposium.org/ndss-paper/
shadow-attacks-hiding-and-replacing-content-in-signed-pdfs/) from the original on April
21, 2021. Retrieved April 6, 2021.
64. "Processing Dangerous Paths – On Security and Privacy of the Portable Document Format"
(https://www.ndss-symposium.org/ndss-paper/processing-dangerous-paths-on-security-an
d-privacy-of-the-portable-document-format/) . Internet Society, The Network and
Distributed System Security Symposium. Archived (https://web.archive.org/web/20210421
094018/https://www.ndss-symposium.org/ndss-paper/processing-dangerous-paths-on-sec
urity-and-privacy-of-the-portable-document-format/) from the original on April 21, 2021.
Retrieved April 6, 2021.
66. "Can PDFs have viruses? Keep your files safe" (https://www.adobe.com/acrobat/resources/
can-pdfs-contain-viruses.html) . Adobe. Archived (https://web.archive.org/web/20231004
120143/https://www.adobe.com/acrobat/resources/can-pdfs-contain-viruses.html) from
the original on October 4, 2023. Retrieved October 3, 2023.
69. Gibson, Steve; Laporte, Leo (March 12, 2009). "Steve Gibson – SecurityNow Podcast" (http
s://www.grc.com/sn/sn-187.txt) . Archived (https://web.archive.org/web/2020050810030
1/https://www.grc.com/sn/sn-187.txt) from the original on May 8, 2020. Retrieved
January 11, 2011.
71. Pathak, Khamosh (October 7, 2017). "How to Create a PDF from Web Page on iPhone and
iPad in iOS 11" (https://ijunkie.com/how-to-create-pdf-web-page-safari-iphone-ipad-ios-1
1/) . iJunkie. Archived (https://web.archive.org/web/20230112153246/https://ijunkie.com/
how-to-create-pdf-web-page-safari-iphone-ipad-ios-11/) from the original on January 12,
2023. Retrieved January 12, 2023.
72. "Description of 2007 Microsoft Office Suite Service Pack 2 (SP2)" (https://web.archive.org/
web/20090429212434/http://support.microsoft.com/kb/953195) . Microsoft. Archived
from the original (http://support.microsoft.com/kb/953195) on April 29, 2009. Retrieved
January 12, 2023.
73. On 2014-04-02, a note dated February 10, 2009 referred to Current FSF High Priority Free
Software Projects (http://www.fsf.org/campaigns/priority.html) Archived (https://web.arc
hive.org/web/20070810230457/http://www.fsf.org/campaigns/priority.html) August 10,
2007, at the Wayback Machine as a source. Content of the latter page, however, changes
over time.
75. Lee, Matt (October 6, 2011). "GNU PDF project leaves FSF High Priority Projects list; mission
complete!" (http://www.fsf.org/blogs/community/gnu-pdf-project-leaves-high-priority-projec
ts-list-mission-complete) . fsf.org. Free Software Foundation. Archived (https://web.archiv
e.org/web/20141228050435/http://www.fsf.org/blogs/community/gnu-pdf-project-leaves-
high-priority-projects-list-mission-complete) from the original on December 28, 2014.
76. "Poppler Homepage" (http://poppler.freedesktop.org/) . Archived (https://web.archive.org/
web/20150108235708/http://poppler.freedesktop.org/) from the original on January 8,
2015. Retrieved January 12, 2023. "Poppler is a PDF rendering library based on the xpdf-3.0
code base."
78. "The Apache PDFBox project- Apache PDFBox 3.0.0 released" (https://pdfbox.apache.or
g/) . August 17, 2023. Archived (https://web.archive.org/web/20230107234923/https://pd
fbox.apache.org/) from the original on January 7, 2023. Updated for new releases.
Further reading
PDF 2.0 "ISO 32000-2:2020(en), Document management — Portable document format — Part
2: PDF 2.0" (https://www.iso.org/standard/75839.html) . International Organization for
Standardization. Retrieved December 16, 2020.
PDF 2.0 "ISO 32000-2:2017(en), Document management — Portable document format — Part
2: PDF 2.0" (https://www.iso.org/standard/63534.html) . International Organization for
Standardization. August 3, 2017. Retrieved January 31, 2019.
External links
PDF Association (https://pdfa.org/) – The PDF Association is the industry association for
software developers producing or processing PDF files.
PDF Specification Index (https://pdfa.org/resource/pdf-specification-index/) at the PDF
Association
Everything you wanted to know about PDF but was afraid to ask (https://web.archive.org/web/
20160118105015/http://river-valley.zeeba.tv/everything-you-wanted-to-know-about-pdf-but-we
re-afraid-to-ask/) at the Wayback Machine (archived 2016-01-18) – recording of a talk by
Leonard Rosenthol (https://www.youtube.com/watch?v=poc9PVmFzpc) (45 mins) (Adobe
Systems) at TUG 2007