PDF: Difference between revisions

From Wikipedia, the free encyclopedia
[pending revision][pending revision]
Content deleted Content added
Replaced content with 'DIMAISIP'
m Reverting possible vandalism by 103.3.83.139 to version by 209.120.171.227. Report False Positive? Thanks, ClueBot NG. (2906475) (Bot)
Line 1: Line 1:
{{Redirect|PDF|3=}}
DIMAISIP
{{Infobox file format
| name = Portable Document Format
| icon = [[File:Adobe PDF.svg|frameless|SVG logo|150px]]
| iconcaption = Adobe PDF icon
| extension = .pdf
| mime = {{plainlist|
* <code>application/pdf</code>,<ref name="rfc3778">{{citation |url=http://tools.ietf.org/html/rfc3778 |title=The application/pdf Media Type, RFC 3778, Category: Informational |year=2004}}</ref>
* <code>application/x-pdf</code>
* <code>application/x-bzpdf</code>
* <code>application/x-gzpdf</code>
}}
| _nomimecode = true
| magic = <code>%PDF</code>
| released = {{Start date and age|1993|6|15}}
| standard = ISO 32000-1
| free = Yes
| url = {{URL|https://www.adobe.com/devnet/pdf/pdf_reference_archive.html}}
| image =
| typecode = 'PDF '<ref name="rfc3778" /> (including a single space)
| uniform type = com.adobe.pdf
| owner = [[Adobe Systems]]
| latest release version = 1.7
| latest release date = <!-- {{Start date and age|YYYY|mm|dd|df=yes}} -->
| genre =
| container for =
| contained by =
| extended from =
| extended to = [[PDF/A]], [[PDF/E]], [[PDF/UA]], [[PDF/VT]], [[PDF/X]]
}}
The '''Portable Document Format''' ('''PDF''') is a [[file format]] used to present [[document]]s in a manner independent of [[application software]], [[Computer hardware|hardware]], and [[operating system]]s.<ref name="pdf-ref-1.7">Adobe Systems Incorporated, [https://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf PDF Reference, Sixth edition, version 1.23 (30 MB)], Nov 2006, p. 33.</ref> Each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, [[font]]s, graphics, and other information needed to display it. <!-- Today, three dimensional objects can be embedded in PDF documents with Acrobat 3D using [[U3D]] or [[PRC (file format)|PRC]] and various other data formats.<ref name="3d#1" /><ref name="3d#2" /> -->

<blockquote>A PDF file captures document text, fonts, images, and even formatting of documents from a variety of applications. You can e-mail a PDF document to your friend and it will look the same way on his screen as it looks on yours, even if he has a Mac and you have a PC.<ref>[http://techterms.com/definition/pdf TechTerms.com]</ref>
</blockquote>

== History and standardization ==

{{main article|History and standardization of Portable Document Format}}

PDF was developed in the early 1990s<ref>{{cite web|url=http://www.planetpdf.com/enterprise/article.asp?ContentID=6650|title=Adobe's Bob Wulff knows Acrobat and PDF -- inside and out}}</ref> as a way to share computer documents, including text formatting and inline images.<ref>{{cite web|url=http://www.planetpdf.com/planetpdf/pdfs/warnock_camelot.pdf|title=The Camelot Project}}</ref> It was among a number of competing formats such as [[DjVu]], [[Envoy (WordPerfect)|Envoy]], Common Ground Digital Paper, Farallon Replica and even [[Adobe Systems|Adobe]]'s own [[PostScript]] format. In those early years before the rise of the [[World Wide Web]] and [[HTML]] documents, PDF was popular mainly in [[desktop publishing]] [[workflow]]s.
Adobe Systems made the PDF specification available free of charge in 1993. PDF was a [[proprietary format]] controlled by Adobe, until it was officially released as an [[open standard]] on July 1, 2008, and published by the [[International Organization for Standardization]] as ISO 32000-1:2008,<ref name="iso-standard">{{cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=51502 |title=ISO 32000-1:2008 - Document management – Portable document format – Part 1: PDF 1.7 |publisher=Iso.org |date=2008-07-01 |accessdate=2010-02-21}}</ref><ref>{{cite web|last=Orion |first=Egan |title=PDF 1.7 is approved as ISO 32000 |work=[[The Inquirer]] |publisher=[[The Inquirer]] |date=2007-12-05 |url=http://www.theinquirer.net/gb/inquirer/news/2007/12/05/pdf-approved-iso-32000 |accessdate=2007-12-05 |deadurl=yes |archiveurl=https://web.archive.org/web/20071213004627/http://www.theinquirer.net/gb/inquirer/news/2007/12/05/pdf-approved-iso-32000 |archivedate=December 13, 2007 }}</ref> 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.<ref>{{citation |url=https://www.adobe.com/pdf/pdfs/ISO32000-1PublicPatentLicense.pdf |title=Public Patent License, ISO 32000-1: 2008 – PDF 1.7 |author=Adobe Systems Incorporated |year=2008 |accessdate=2011-07-06}}</ref>

However, there are still some proprietary technologies defined only by Adobe, such as [[XFA|Adobe XML Forms Architecture]] (XFA) and [[JavaScript]] extension for Acrobat, which are referenced by ISO 32000-1 as [[normative]] and indispensable for the application of the ISO 32000-1 specification. These proprietary technologies are not standardized and their specification is published only on Adobe’s website.<ref>{{cite web |url=http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=SWD:2013:0224:FIN:EN:PDF |title=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 |quote=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). |publisher=European Commission |date=2013-06-25 |accessdate=2013-10-20}}</ref><ref name="iso-meeting-n603">{{citation |url=http://pdf.editme.com/files/pdfREF-meetings/ISO-TC171-SC2-WG8_N0603_SC2WG8_MtgRept_SLC.pdf |title=ISO/TC 171/SC 2/WG 8 N 603 - Meeting Report |quote=XFA is not to be ISO standard just yet. ... The Committee urges Adobe Systems to submit the XFA Specification, XML Forms Architecture (XFA), to ISO for standardization ... The Committee is concerned about the stability of the XFA specification ... Part 2 will reference XFA 3.1 |date=2011-06-27}}</ref><ref>{{cite web |url=http://www.plosone.org/article/fetchSingleRepresentation.action?uri=info:doi/10.1371/journal.pone.0069446.s001 |title=Embedding and publishing interactive, 3-dimensional, scientificfigures in Portable Document Format (PDF) files |quote=... the implementation of the U3D standard was not complete and proprietary extensions were used. |accessdate=2013-10-20}}</ref><ref name="rosenthol-adobe-2012">{{cite web |url=http://cdn.parleys.com/p/5148922a0364bc17fc56c6e5/iSUM2012_00_LRO_presentation.pdf |title=PDF and Standards |author=Leonard Rosenthol, Adobe Systems |year=2012 |accessdate=2013-10-20}}</ref><ref>{{citation |url=http://www.planetpdf.com/enterprise/article.asp?ContentID=Is_PDF_an_open_standard&page=1 |title=Is PDF an open standard? - Adobe Reader is the de facto Standard, not PDF |author=Duff Johnson |date=2010-06-10 |accessdate=2014-01-19}}</ref> Many of them are also not supported by popular third-party implementations of PDF. So when organizations publish PDFs which use these proprietary technologies, they present accessibility issues for some users.

In 2014, ISO TC 171 voted to deprecate XFA for ISO 32000-2 ("Next-generation PDF").<ref name="DRAFT INTERNATIONAL">{{Cite web|url=http://www.iso.org/iso/catalogue_detail.htm?csnumber=63534|title=DRAFT INTERNATIONAL STANDARD ISO/DIS 32000-2|last=|first=|date=|website=|publisher=ISO|access-date=2016-08-04|quote=Editor’s note: XFA forms have been deprecated from ISO 32000-2 in accordance with the outcome of the letter ballot following the Pretoria meetings.}}</ref>

== 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|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 ===
[[PostScript]] is a [[page description language]] run in an [[interpreter (computing)|interpreter]] to generate an image, a process requiring many resources. It can handle graphics and standard features of [[programming language]]s such as <code>if</code> and <code>loop</code> commands. PDF is largely based on PostScript but simplified to remove flow control features like these, while graphics commands such as <code>lineto</code> 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 [[Lexical analysis|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 (fonts, layout, measurements) 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 (from version 1.4) supports [[transparency (graphic)|graphic transparency]]; 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 (unless the optional PostScript [[Document Structuring Conventions]] have been carefully complied with).

== Technical overview ==

=== File structure ===

A PDF file is basically 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 (programming)|magic number]] and the version of the format such as <code>%PDF-1.7</code>. The format is a subset of a COS ("Carousel" Object Structure) format.<ref>{{cite web|url=http://jimpravetz.com/blog/2012/12/in-defense-of-cos/|title=In Defense of COS, or Why I Love JSON and Hate XML|author=Jim Pravetz|work=jimpravetz.com}}</ref> A COS tree file consists primarily of ''objects'', of which there are eight types:<ref>Adobe Systems, PDF Reference, p. 51.</ref>
* [[Boolean data type|Boolean]] values, representing ''true'' or ''false''
* Numbers
* [[String (computer science)|Strings]], enclosed within parentheses (<code>(...)</code>), may contain 8-bit characters.
* Names, starting with a forward slash (<code>/</code>)
* [[Array data type|Array]]s, ordered collections of objects enclosed within square brackets (<code>[...]</code>)
* [[Dictionary (data structure)|Dictionaries]], collections of objects indexed by Names enclosed within double pointy brackets (<code>&lt;&lt;...&gt;&gt;</code>)
* [[Stream (computing)|Streams]], usually containing large amounts of data, which can be compressed and binary
* The [[Pointer (computer programming)|null]] object
Furthermore, there may be comments, introduced with the percent sign (<code>%</code>). Comments may contain 8-bit characters.

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 <code>obj</code> and <code>endobj</code> keywords. An index table, also called the cross-reference table and marked with the <code>xref</code> keyword, follows the main body and gives the byte offset of each indirect object from the start of the file.<ref>Adobe Systems, PDF Reference, pp. 39–40.</ref> 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''). Beginning with PDF version 1.5, indirect objects may also be located in special streams known as ''object streams''. This technique reduces the size of files that have large numbers of small indirect objects and is especially useful for ''Tagged PDF''.

At the end of a PDF file is a trailer introduced with the <code>trailer</code> keyword. It contains

* a dictionary
* an offset to the start of the cross-reference table (the table starting with the <code>xref</code> keyword)
* and the <code>%%EOF</code> [[end-of-file]] marker.

The dictionary contains

* 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.

There are two layouts to the PDF files: non-linear (not "optimized") and linear ("optimized"). Non-linear PDF files consume less disk space 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. Linear 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 they are written to disk in a linear (as in page order) fashion.<ref name="pdf-ref">{{cite web |url=https://www.adobe.com/devnet/pdf/pdf_reference.html |title=Adobe Developer Connection: PDF Reference and Adobe Extensions to the PDF Specification |publisher=Adobe Systems |accessdate=2010-12-13}}</ref> PDF files may be optimized using [[Adobe Acrobat]] software or [[QPDF]].

=== 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 (graphic)|transparency]], which was added in PDF 1.4.

PDF graphics use a [[device independence|device-independent]] [[Cartesian coordinate system]] to describe the surface of a page. A PDF page description can use a [[matrix (mathematics)|matrix]] to [[scale (ratio)|scale]], [[rotate]], or [[Shear mapping|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 1.6) 24 graphics state properties, of which some of the most important are:
* The ''current transformation matrix'' (CTM), which determines the coordinate system
* The ''[[clipping path]]''
* The ''[[color space]]''
* The ''[[alpha compositing|alpha constant]]'', which is a key component of transparency

==== Vector graphics ====
As in PostScript, [[vector graphics]] in PDF are constructed with ''paths''. Paths are usually composed of lines and cubic [[Bézier curve]]s, 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, or used for [[clipping path|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 pattern of which the simplest are the ''axial shade'' (Type 2) and ''radial shade'' (Type 3). <!-- Pictures desperately needed here! -->

==== Raster images ====
[[Raster graphics|Raster images]] in PDF (called ''Image XObjects'') are represented by dictionaries with an associated stream. The dictionary describes properties of the image, and the stream contains the image data. (Less commonly, a raster image 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 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 RFC 1951 (deflate is also used in the [[gzip]], [[Portable Network Graphics|PNG]], and [[ZIP (file format)|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 [[Portable Network Graphics|PNG]] specification (RFC 2083)
* '''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
* '''DCTDecode''' a [[lossy]] filter based on the [[JPEG]] standard
* '''CCITTFaxDecode''' a [[lossless]] [[bi-level image|bi-level]] (black/white) filter based on the Group 3 or [[Group 4 compression|Group 4]] [[CCITT]] (ITU-T) [[fax]] compression standard defined in ITU-T [[T.4]] and T.6
* '''JBIG2Decode''' a lossy or lossless bi-level (black/white) filter based on the [[JBIG2]] standard, introduced in PDF 1.4
* '''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''.

===== 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: '''[[PostScript fonts|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. <!--- Type 3 bit is awkward and should be cleaned up --->

===== Standard Type 1 Fonts (Standard 14 Fonts) =====
Fourteen typefaces, known as the ''standard 14 fonts'', have a special significance in PDF documents:
* [[Times Roman|Times]] (v3) (in regular, italic, bold, and bold italic)
* [[Courier (typeface)|Courier]] (in regular, oblique, bold and bold oblique)
* [[Helvetica]] (v3) (in regular, oblique, bold and bold oblique)
* [[Symbol (typeface)|Symbol]]
* [[Zapf Dingbats]]
These fonts are sometimes called the ''base fourteen fonts''.<ref>{{cite web|url=http://desktoppub.about.com/od/glossary/g/base14fonts.htm|title=Desktop Publishing: Base 14 Fonts - Definition|work=About.com Tech}}</ref> These fonts, or suitable substitute fonts with the same metrics, should be available in most PDF readers. However, since Adobe Acrobat version 6, most of these fonts are not ''guaranteed'' to be available in the reader, and may only display correctly if the system has them installed.<ref name="aquarium">[http://www.planetpdf.com/planetpdf/pdfs/pdf2k/03e/merz_fontaquarium.pdf The PDF Font Aquarium]</ref> Fonts may be substituted if they are not embedded in a PDF.

===== Encodings =====
Within text strings, characters are shown using ''character codes'' (integers) that map to glyphs in the current font using an ''encoding''. There are a number of predefined encodings, including ''WinAnsi'', ''MacRoman'', and a large number of 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 [[Microsoft Windows|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).<ref>{{cite web|url=https://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf |title=PDF Reference Sixth Edition, version 1.7, table 5.11}}</ref> 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.

==== 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.<ref>[https://www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/pdf_reference_archives/blend_modes.pdf PDF Blend Modes Addendum]</ref>

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 and Flash animation.

'''Rich Media PDF''' is a term that is used to describe interactive content that can be embedded or linked to inside of a PDF. This content must be produced using the Flash file format. When Adobe bought Macromedia, the jewel of the company was Flash, and the Flash player was embedded inside Adobe Acrobat and Adobe Reader, removing the need for third-party plug-ins such as Flash, QuickTime, or Windows Media. Unfortunately, this caused a rift with Apple as QuickTime video was prohibited from PDF. [[Rich Media]] expert [[Bob Connolly (Canadian film director)#Books, eBooks and Magazine Articles|Robert Connolly]] believes this event triggered the war between Apple and Adobe over the Flash iPhone/iPad dispute. Rich Media PDF will not operate in Apple's iOS devices such as the iPad, and interactivity is limited.

'''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 PDF specification:<ref name="iso32000">{{citation |url=https://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf |title=Document Management – Portable Document Format – Part 1: PDF 1.7, First Edition |author=Adobe Systems Incorporated |date=2008-07-01 |accessdate=2010-02-19}}</ref><ref>{{cite web |url=http://gnupdf.org/Forms_Data_Format |title=Gnu PDF - PDF Knowledge - Forms Data Format |archiveurl=https://web.archive.org/web/20130101054615/http://www.gnupdf.org/Forms_Data_Format |archivedate=2013-01-01 |accessdate=2010-02-19}}</ref><ref>{{cite web |url=http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=formsPDF_02.html |title=About PDF forms |accessdate=2010-02-19}}</ref><ref>{{cite web |url=http://forums.adobe.com/thread/301733 |title=Convert XFA Form to AcroForm? |year=2008 |accessdate=2010-02-19}}</ref>
* '''AcroForms''' (also known as '''Acrobat forms'''), introduced in the PDF 1.2 format specification and included in all later PDF specifications.
* '''[[XML Forms Architecture|Adobe XML Forms Architecture]] (XFA)''' forms, introduced in the PDF 1.5 format specification. The XFA specification is not included in the PDF specification, it is only referenced as an optional feature. Adobe XFA Forms are not compatible with AcroForms.<ref>{{cite web |url=http://partners.adobe.com/public/developer/tips/topic_tip2.html |title=Migrating from Adobe Acrobat forms to XML forms |accessdate=2010-02-22}}</ref>

==== AcroForms ====
AcroForms were introduced in the PDF 1.2 format. AcroForms permit using objects (''e.g.'' [[text box]]es, [[Radio button]]s, ''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):<ref name="iso32000" />
* HTML Form format (HTML 4.01 Specification since PDF 1.5; HTML 2.0 since 1.2)
* Forms Data Format (FDF)
* XML Forms Data Format (XFDF) (external XML Forms Data Format Specification, Version 2.0; supported since PDF 1.5; it replaced the "XML" form submission format defined in PDF 1.4)
* PDF (the entire document can be submitted rather than individual fields and values). (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.<ref>{{cite web |url=http://kb2.adobe.com/cps/325/325874.html |title=Using Acrobat forms and form data on the web |author=Adobe Systems Incorporated |date=2007-10-15 |accessdate=2010-02-19}}</ref><ref name="xfdf">{{citation |url=http://partners.adobe.com/public/developer/en/xml/xfdf_2.0.pdf |format=PDF |title=XML Forms Data Format Specification, version 2 |date=September 2007 |accessdate=2010-02-19}}</ref><ref name="fdf-exchange">{{citation |url=https://www.adobe.com/devnet/acrobat/pdfs/fdf_data_exchange.pdf |format=PDF |title=FDF Data Exchange Specification |date=2007-02-08 |accessdate=2010-02-19}}</ref> The usage rights (UR) signatures define rights for import form data files in FDF, XFDF and text ([[comma-separated values|CSV]]/[[delimiter-separated values|TSV]]) formats, and export form data files in FDF and XFDF formats.<ref name="iso32000" />

===== Forms Data Format (FDF) =====
{{Infobox file format
| name = Forms Data Format (FDF)
| icon =
| logo =
| screenshot =
| caption =
| extension = .fdf
| mime = application/vnd.fdf<ref>{{citation |url=http://www.iana.org/assignments/media-types/application/ |title=IANA Application Media Types - vnd.fdf |accessdate=2010-02-22}}</ref>
| type code = 'FDF'
| uniform type =
| magic =
| owner = [[Adobe Systems]]
| released = {{Start date|1996}}<!-- {{Start date|YYYY|mm|dd|df=yes}} --> (PDF 1.2)
| latest release version =
| latest release date = <!-- {{Start date and age|YYYY|mm|dd|df=yes}} -->
| genre =
| container for =
| contained by =
| extended from = PDF
| extended to = XFDF
| standard = ISO 32000-1:2008
| free = Yes
| url =
}}

The Forms Data Format (FDF) 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 (since PDF 1.2). 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. Beginning in PDF 1.3, FDF can be used to define a container for annotations that are separate from the PDF document they apply to. FDF typically encapsulates information such as [[X.509|X.509 certificates]], requests for certificates, directory settings, timestamp server settings, and embedded PDF files for network transmission.<ref name="fdf-exchange" /> The FDF uses the MIME content type application/vnd.fdf, filename extension .fdf and on Mac OS it uses file type 'FDF'.<ref name="iso32000" /> Support for importing and exporting FDF stand-alone files is not widely implemented in free or freeware PDF software. For example, there is no import/export support in Evince, Okular, Poppler, KPDF or Sumatra PDF, however, Evince, Okular and Poppler support filling in of PDF Acroforms and saving filled data inside the PDF file. Import support for stand-alone FDF files is implemented in Adobe Reader; export and import support (including saving of FDF data in PDF) is for example implemented in Foxit Reader and PDF-XChange Viewer Free; saving of FDF data in a PDF file is also supported in pdftk.

===== XML Forms Data Format (XFDF) =====
{{Infobox file format
| name = XML Forms Data Format (XFDF)
| icon =
| logo =
| screenshot =
| caption =
| extension = .xfdf
| mime = application/vnd.adobe.xfdf<ref>{{citation |url=http://www.iana.org/assignments/media-types/application/vnd.adobe.xfdf |title=IANA Application Media Types - Vendor Tree - vnd.adobe.xfdf |accessdate=2010-02-22}}</ref>
| type code = 'XFDF'
| uniform type =
| magic =
| owner = [[Adobe Systems]]
| released = {{Start date|2003|07|df=yes}} (referenced in PDF 1.5)
| latest release version = 3.0
| latest release date = {{Start date and age|2009|08|df=yes}}
| genre =
| container for =
| contained by =
| extended from = PDF, FDF, [[XML]]
| extended to =
| standard = No (under standardization as ISO/CD 19444-1<ref name="iso-xfdf">{{citation |url=http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?ics1=35&ics2=240&ics3=30&csnumber=64911 |title=ISO/CD 19444-1 - Document management - XML forms data format - Part 1: XFDF 3.0 |accessdate=2014-11-26}}</ref>)
| free =
| url = [https://partners.adobe.com/public/developer/en/xml/XFDF_Spec_3.0.pdf XFDF 3.0 specification]
}}

XML Forms Data Format (XFDF) is the XML version of Forms Data Format, but the XFDF implements only a subset of FDF containing forms and annotations. There are not XFDF equivalents for some entries in the FDF dictionary - 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 (but not included) in PDF 1.5 specification (and in later versions). It is described separately in ''XML Forms Data Format Specification''.<ref name="xfdf" /> 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 November 2014, XFDF 3.0 is in the ISO/IEC standardization process under the formal name ''ISO/CD 19444-1 - Document management - XML forms data format - Part 1: XFDF 3.0''.<ref name="iso-xfdf"/>

XFDF can be used 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. A support for importing and exporting XFDF stand-alone files is not widely implemented in free or freeware PDF software. Import of XFDF is implemented in Adobe Reader 5 and later versions; import and export is implemented in PDF-XChange Viewer Free; embedding of XFDF data in PDF form is implemented in pdftk (pdf toolkit).

==== Adobe XML Forms Architecture (XFA) ====
{{Main article|XFA|l1=XML Forms Architecture}}
In the PDF 1.5 format, [[Adobe Systems]] introduced a new, proprietary format for forms, namely Adobe XML Forms Architecture (XFA) forms. The XFA 2.02 is referenced in the PDF 1.5 specification (and also in later versions) but is described separately in ''Adobe XML Forms Architecture (XFA) Specification'', which has several versions.<ref name="xfa-adobe">{{cite web |url=http://partners.adobe.com/public/developer/xml/index_arch.html |title=Adobe XML Forms Architecture (XFA) |author=Adobe Systems Incorporated |accessdate=2010-02-19}}</ref> XFA specification is not included in ISO 32000-1 PDF 1.7 and is only referenced as an external proprietary specification created by Adobe. XFA was not standardized as an ISO standard. In 2011 the ISO Committee (TC 171/SC 2/WG 8) urged Adobe Systems to submit the XFA Specification for standardization.<ref name="iso-meeting-n603" />

Adobe XFA Forms are not compatible with AcroForms. Adobe Reader contains "disabled features" for use of XFA Forms, that activate only when opening a PDF document that was created using enabling technology available only from Adobe.<ref>{{citation |url=https://www.adobe.com/products/eulas/pdfs/Reader_Player_AIR_WWEULA-Combined-20080204_1313.pdf |format=PDF |title=Adobe Reader - Software license agreement |accessdate=2010-02-19}}</ref><ref>{{cite web|url=https://www.adobe.com/go/readerextensions |title=LiveCycle Reader Extensions ES features and benefits |accessdate=2010-02-19 |deadurl=yes |archiveurl=https://web.archive.org/web/20091219163323/http://www.adobe.com/go/readerextensions |archivedate=December 19, 2009 }}</ref> The XFA Forms are not compatible with Adobe Reader prior to version 6.

XFA forms can be created and used as PDF files or as XDP ([[XML Data Package]]) files. The format of an XFA resource in PDF is described by the XML Data Package Specification.<ref name="iso32000" /> The XDP may be a standalone document or it may in turn be carried inside a PDF document. XDP provides a mechanism for packaging form components within a surrounding XML container. An XDP can also package a PDF file, along with XML form and template data.<ref name="xfa-adobe" /> PDF may contain XFA (in XDP format), but also XFA may contain PDF.<ref name="xfa-adobe" /> When the XFA (XML Forms Architecture) grammars used for an XFA form are moved from one application to another, they must be packaged as an XML Data Package.<ref name="xfa25">{{citation |url=http://partners.adobe.com/public/developer/en/xml/xfa_spec_2_5.pdf |format=PDF |title=XML Forms Architecture (XFA) Specification Version 2.5 |date=2007-06-08 |accessdate=2010-02-19}}</ref>

When the PDF and XFA are combined, the result is a form in which each page of the XFA form overlays a PDF background. This architecture is
sometimes referred to as XFAF (XFA Foreground). The alternative is to express all of the form, including boilerplate, directly in XFA (without using PDF, or only using "Shell PDF" which is a container for XFA with minimal skeleton of PDF markup, or using a pre-rendered depiction of a static XFA form as PDF pages). It is sometimes called ''full'' XFA.<ref name="xfa25" />

Starting with PDF 1.5, the text contents of variable text form fields, as well as markup annotations may include formatting information (style information). These rich text strings are XML documents that conform to the rich text conventions specified for the XML Forms Architecture specification 2.02, which is itself a subset of the XHTML 1.0 specification, augmented with a restricted set of CSS2 style attributes.<ref name="iso32000" />
In PDF 1.6, PDF supports the rich text elements and attributes specified in the XML Forms Architecture (XFA) Specification, 2.2.
In PDF 1.7, PDF supports the rich text elements and attributes specified in the XML Forms Architecture (XFA) Specification, 2.4.<ref name="iso32000" />

Most PDF processors do not handle XFA content. When generating a shell PDF it is recommended to include in the PDF markup a simple one-page PDF image displaying a warning message (e.g. "To view the full contents of this document, you need a later version of the PDF viewer.", etc.). PDF processors that can render XFA content should either not display the supplied warning page image or replace it quickly with the dynamic form content.<ref name="xfa33">{{citation |url=http://partners.adobe.com/public/developer/en/xml/xfa_spec_3_3.pdf |title=XML Forms Architecture (XFA) Specification Version 3.3 |date=2012-01-09 |accessdate=2014-04-09}}</ref> Examples of PDF software with some support of XFA rendering include Adobe Reader for Windows, Linux, macOS (but not Adobe Reader Mobile for Android or iOS) or Nuance PDF Reader.

In 2014, ISO TC 171 voted to deprecate XFA for ISO 32000-2 ("Next-generation PDF").<ref name="DRAFT INTERNATIONAL" />

=== Logical structure and accessibility ===

A "tagged" PDF (ISO 32000-1:2008 14.8) 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 (text, graphics, and images) to be extracted and reused for other purposes.<ref>[http://www.planetpdf.com/enterprise/article.asp?ContentID=6067 What is Tagged PDF?]</ref>

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 as specified in ISO 32000-1 are relatively vague, support for tagged PDF amongst consuming devices, including assistive technology (AT), is uneven.<ref>{{cite web|url=http://www.washington.edu/doit/Stem/articles?1002|title=Is PDF accessible?|work=washington.edu}}</ref>

An [[AIIM]] project to develop an ISO-standardized subset of PDF specifically targeted at accessibility began in 2004, eventually becoming [[PDF/UA]].

=== 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, ''user password'', which encrypts the file and prevents opening, and ''owner password'', which specifies operations that should be restricted even when the document is decrypted, which can include: printing, copying text and graphics out of the document, modifying the document, or adding or modifying text notes and [[Acroforms|AcroForm]] fields. The user password (controls opening) encrypts the file and requires [[password cracking]] to defeat, with difficulty depending on password strength and encryption method – it is potentially very secure (assuming good password and encryption method without known attacks). The owner password (controls operations) does not encrypt the file, and instead relies on client software to respect these restrictions, and is not secure. An "owner password" can be removed by many commonly available "PDF cracking" software, including some free online services.<ref>{{cite web|url=http://freemypdf.com/|title=FreeMyPDF.com - Removes passwords from viewable PDFs|work=freemypdf.com}}</ref> 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.<ref>{{cite web |url= http://www.macworld.com/article/1137343/pdf.html |title=Adobe admits new PDF password protection is weaker |author= Jeremy Kirk}}</ref><ref>{{cite web |url= http://www.cs.cmu.edu/~dst/Adobe/Gallery/PDFsecurity.pdf |title= How secure is PDF |author=Bryan Guignard}}</ref><ref>{{cite web |url= http://www.planetpdf.com/planetpdf/pdfs/pdf2k/01W/merz_securitykeynote.pdf |title= PDF Security Overview: Strengths and Weaknesses }}</ref>

There are a number of commercial solutions including [[Adobe LiveCycle]] [[Adobe LiveCycle#LiveCycle Rights Management ES4|Rights Management]] and Locklizard PDF DRM<ref>{{cite web |url=http://www.infosecurity-magazine.com/news/locklizard-develops-zero-footprint-solution-for/ |title=LockLizard Develops Zero Footprint Solution for PDF Security }}</ref> that are more robust means of [[information rights management]]. Not only can they restrict document access but they also reliably enforce [[File system permissions|permissions]] in ways that the standard security handler does not.<ref>{{cite web |url=http://www.locklizard.com/pdf_security_drm/ |title=PDF DRM Security Software for Adobe Document Protection}}</ref>

==== Usage rights ====
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:<ref name="iso32000" />
* to save the PDF document along with modified form and/or annotation data
* import form data files in FDF, XFDF and text (CSV/TSV) formats
* export form data files in FDF and XFDF formats
* submit form data
* instantiate new pages from named page templates
* apply a [[Digital data|digital]] [[signature]] to existing [[digital signature]] form field
* create, delete, modify, copy, import, export annotations

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 [[Public key certificate|certificate]] from an Adobe-[[authorize]]d certificate authority. The PDF 1.5 specification declares that other PDF viewer applications are free to use this same mechanism for their own purposes.<ref name="iso32000" />

=== File attachments ===

PDF files can have document-level and page-level file attachments, which the reader can access and open or save to their local filesystem. PDF attachments can be added to existing PDF files for example using [[pdftk]]. Adobe Reader provides support for attachments, and [[poppler (software)|poppler]]-based readers like [[Evince]] or [[Okular]] also have some support for document-level attachments.

=== Metadata ===
PDF files can contain two types of metadata.<ref>[https://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf Adobe PDF reference version 1.7], section 10.2</ref> 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.

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. This allows metadata to be attached to any stream in the document, such as information about embedded illustrations, as well as the whole document (attaching to the document catalog), using an extensible schema.

== 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.<ref>{{cite web|url=http://partners.adobe.com/public/developer/support/topic_legal_notices.html|title=Developer Resources|work=adobe.com}}</ref>

== Technical issues ==

=== Accessibility ===
PDF files can be created specifically to be accessible for disabled people.<ref>{{cite web |url=http://www.webaim.org/techniques/acrobat/ |title=PDF Accessibility |publisher=WebAIM |accessdate=2010-04-24}}</ref><ref>{{cite web |url=http://www.alistapart.com/articles/pdf_accessibility |title=Facts and Opinions About PDF Accessibility |author=Joe Clark |date=2005-08-22 |accessdate=2010-04-24}}</ref><ref>{{cite web |url=http://wac.osu.edu/pdf/ |title=Accessibility and PDF documents |publisher=Web Accessibility Center |accessdate=2010-04-24}}</ref><ref>{{cite web |url=http://www.bbc.co.uk/guidelines/futuremedia/accessibility/accessible_pdf.shtml |title=PDF Accessibility Standards v1.2 |accessdate=2010-04-24}}</ref><ref>{{citation |url=http://www.csus.edu/training/handouts/workshops/creating_accessible_pdfs.pdf |format=PDF |title=PDF Accessibility |publisher=California State University |accessdate=2010-04-24}}</ref> PDF file formats in use {{As of|2014|lc=on}} can include tags ([[XML]]), text equivalents, captions, audio descriptions, etc. Tagged PDF is required in the [[PDF/A]]-1a specification.<ref>{{citation |url=http://www.aiim.org/documents/standards/PDF-A/19005-1_FAQ.pdf |title=Frequently Asked Questions (FAQs) – ISO 19005-1:2005 – PDF/A-1, Date: July 10, 2006 |format=PDF |date=2006-07-10 |accessdate=2011-07-06}}</ref><ref name="pdfa1-tech">{{cite web |url=http://www.pdfa.org/doku.php?id=artikel:en:pdfa_a_look_at_the_technical-side |title=PDF/A – A Look at the Technical Side |accessdate=2011-07-06}}</ref> Some software can automatically produce tagged PDFs, but this feature is not always enabled by default.<ref>{{citation |url=http://help.libreoffice.org/Common/Export_as_PDF#PDF.2FA-1a |title=LibreOffice Help - Export as PDF |accessdate=2012-09-22}}</ref><ref>{{citation |url=http://www.oooninja.com/2008/01/generating-pdfa-for-long-term-archiving.html |title=Exporting PDF/A for long-term archiving |date=2008-01-11}}</ref> Leading [[screen reader]]s, including [[JAWS (screen reader)|JAWS]], [[Window-Eyes]], Hal, and [[Kurzweil Educational Systems|Kurzweil 1000 and 3000]] can read tagged PDFs aloud, as can later versions of the Acrobat and Acrobat Reader programs.<ref>{{cite web |url=http://help.adobe.com/en_US/Reader/8.0/help.html?content=WS58a04a822e3e50102bd615109794195ff-7d15.html |title=Adobe Reader 8 - Read a PDF with Read Out Loud |accessdate=2010-04-24}}</ref><ref>{{cite news |url=http://gadgetwise.blogs.nytimes.com/2009/04/10/tip-of-the-week-adobe-readers-read-aloud-feature/ |title=Tip of the Week: Adobe Reader’s ‘Read Aloud’ Feature |accessdate=2010-04-24 | work=The New York Times | date=2009-04-10 |first=J.D. |last=Biersdorfer}}</ref><ref>{{citation |url=https://www.adobe.com/accessibility/pdfs/accessing-pdf-sr.pdf |format=PDF |title=Accessing PDF documents with assistive technology: A screen reader user's guide |publisher=Adobe |accessdate=2010-04-24}}</ref> Moreover, tagged PDFs can be re-flowed and magnified for readers with visual impairments. Problems remain with adding tags to older PDFs and those that are generated from scanned documents. In these cases, accessibility tags and re-flowing are unavailable, and must be created either manually or with OCR techniques. These processes are inaccessible to some disabled people.

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 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 published as ISO 14289-1 in 2012, and establishes normative language for accessible PDF technology.

=== Viruses and exploits ===
{{see also|Adobe Acrobat#Security}}
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.<ref>Adobe Forums, [https://forums.adobe.com/thread/302989 Announcement: PDF Attachment Virus "Peachy"], 15 August 2001.</ref>

From time to time, new vulnerabilities are discovered in various versions of Adobe Reader,<ref>{{cite web|url=https://www.adobe.com/support/security/#readerwin |title=Security bulletins and advisories |publisher=Adobe |date= |accessdate=2010-02-21}}</ref> 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.<ref>[http://www.grc.com/sn/sn-187.txt Steve Gibson - SecurityNow Podcast]</ref> 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.<ref>{{cite web|url=http://blogs.pcmag.com/securitywatch/2010/03/malicious_pdfs_execute_code_wi.php|title=Malicious PDFs Execute Code Without a Vulnerability|work=PCMAG}}</ref>

=== Usage restrictions and monitoring ===

PDFs may be [[encrypted]] so that a password is needed to view or edit the contents. The PDF Reference defines both 40-bit and 128-bit encryption, both making use of a complex system of [[RC4]] and [[MD5]]. The PDF Reference also defines ways that third parties can define their own encryption systems for PDF.

PDF files may also contain embedded [[digital rights management|DRM]] restrictions that provide further controls that limit copying, editing or printing. The restrictions on copying, editing, or printing depend on the reader software to obey them, so the security they provide is limited.

The PDF Reference has technical details for an end-user overview.<ref>{{cite web|url=http://createpdf.adobe.com/cgi-feeder.pl/help_security?BP=&LOC=en_US |title=Create Adobe PDF Online - Security Settings Help |publisher=Createpdf.adobe.com |date= |accessdate=2010-02-21}}</ref> Like HTML files, PDF files may submit information to a web server. This could be used to track the [[IP address]] of the client PC, a process known as [[phoning home]]. After update 7.0.5 to Acrobat Reader, the user is notified "...&nbsp;via a dialogue box that the author of the file is auditing usage of the file, and be offered the option of continuing."<ref>[https://www.adobe.com/support/techdocs/332208.html New features and issues addressed in the Acrobat 7.0.5 Update (Acrobat and Adobe Reader for Windows and Mac OS)]</ref>

Through its [[Adobe LiveCycle|LiveCycle Policy Server]] product, Adobe provides a method to set security policies on specific documents. This can include requiring a user to authenticate and limiting the period during which a document can be accessed or amount of time a document can be opened while offline. Once a PDF document is tied to a policy server and a specific policy, that policy can be changed or revoked by the owner. This controls documents that are otherwise "in the wild." Each document open and close event can also be tracked by the policy server. Policy servers can be set up privately or Adobe offers a public service through Adobe Online Services. As with other forms of DRM, adherence to these policies and restrictions may or may not be enforced by the reader software being used.

=== 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.<ref>{{cite web | title=Getting Familiar with Adobe Reader &gt; Understanding Preferences | url=http://www.adobepress.com/articles/article.asp?p=412914 | accessdate=2009-04-22}}</ref> The free Adobe Reader cannot remove these settings.

== 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 (i.e., not text)
* 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

In later PDF revisions, a PDF document can also support links (inside document or web page), forms, JavaScript (initially available as plugin for Acrobat 3.0), or any other types of embedded contents that can be handled using plug-ins.

PDF 1.6 supports interactive 3D documents embedded in the PDF - 3D drawings can be embedded using [[U3D]] or [[PRC (file format)|PRC]] and various other data formats.<ref name="3d#1">{{cite web|url=https://www.adobe.com/manufacturing/resources/3dformats/ |title=3D supported formats |publisher=Adobe |date=2009-07-14 |accessdate=2010-02-21}}</ref><ref name="3d#2">{{cite web|url=https://www.adobe.com/devnet/acrobat3d/ |title=Acrobat 3D Developer Center |publisher=Adobe |date= |accessdate=2010-02-21}}</ref>

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 ==
{{Details|List of PDF 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]] and most [[Linux]] distributions, [[LibreOffice]], [[Microsoft Office 2007]] (if updated to [[Office 2007#Service Pack 2|SP2]]) and later,<ref>{{cite web |url=http://support.microsoft.com/kb/953195|title=Description of 2007 Microsoft Office Suite Service Pack 2 (SP2) |publisher=[[Microsoft]] |accessdate=2009-05-09}}</ref> [[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 processor]]s (RIPs) are used to convert PDF files into a [[raster graphics|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<ref>{{cite web|url=https://www.adobe.com/products/pdfprintengine/overview.html|title=Adobe PDF Print Engine|work=adobe.com}}</ref> from [[Adobe Systems]] and Jaws<ref>{{cite web|url=http://www.globalgraphics.com/products/jaws_rip/|title=Jaws® 3.0 PDF and PostScript RIP SDK|work=globalgraphics.com}}</ref> and the [[Harlequin RIP]] from [[Global Graphics]].

=== Editing ===
{{Expand section|date=July 2010|reason=[[hybrid PDF]], a variant of [[LibreOffice]] isn't mentioned}}
There is specialized software for editing PDF files, though the choices are much more limited and often more expensive than creating and editing standard editable document formats. Version 0.46 and later of [[Inkscape]] allows PDF editing through an intermediate translation step involving [[Poppler (software)|Poppler]].

[[Serif PagePlus]] can open, edit and save existing PDF documents, as well as publishing of documents created in the package.

[[Enfocus]] PitStop Pro, a plugin for Acrobat, allows manual and automatic editing of PDF files,<ref>{{cite web|url=http://www.enfocus.com/product.php?id=855|title=Preflight and edit PDF files in Acrobat|work=enfocus.com}}</ref> while the free Enfocus Browser makes it possible to edit the low-level structure of a PDF.<ref>{{cite web|url=http://www.enfocus.com/product.php?id=4530|title=Enfocus product overview - online store|work=enfocus.com}}</ref>

[[Dochub]], is a free online PDF editing tool that can be used without purchasing anything.<ref>{{Cite web|title = DocHub|url = http://www.dochub.com|website = DocHub|accessdate = 2015-12-12}}</ref>

=== Annotation ===
{{See also|Comparison of notetaking software}}
[[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]]. Another GPL-licensed application native to the unix environment is Xournal. Xournal allows for annotating in different fonts and colours, as well as a rule for quickly underlining and highlighting lines of text or paragraphs. Xournal also has a shape recognition tool for squares, rectangles and circles. In Xournal annotations may be moved, copied and pasted. 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 Inc.|Apple]]'s [[macOS]]'s integrated PDF viewer, Preview, does also enable annotations as does the freeware [[Skim (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.

For mobile annotation, [[iAnnotate PDF]] (from Branchfire) and [[GoodReader]] (from Aji) allow annotation of PDFs as well as exporting summaries of the annotations.

There are also [[web annotation]] systems that support annotation in pdf and other documents formats, e.g., [[A.nnotate]], [[crocodoc]], WebNotes.

In cases where PDFs are expected to have all of the functionality of paper documents, ink annotation is required. Some programs that accept ink input from the mouse may not be responsive enough for handwriting input on a tablet. Existing solutions on the PC include [[PDF Annotator]] and [[Qiqqa]].

=== Other ===
Examples of PDF software as online services including [[Scribd]] for viewing and storing, [[Pdfvue]] for online editing, and [[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.<ref>{{cite web |url= http://www.globalgraphics.com/products/harlequin-multi-rip |title=Harlequin MultiRIP|accessdate=2014-03-02}}</ref>

[[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.<ref>[http://www.prepressx.com/ Press-Ready PDF Files] "For anyone interested in having their graphic project commercially printed directly from digital files or PDFs." (last checked on 2009-02-10).</ref> 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 [[macOS|Mac OS X]], replacing the [[PICT]] format of the earlier [[classic Mac OS]]. The imaging model of the [[Quartz (graphics layer)|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)|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 [[Portable Network Graphics|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 [[CUPS|Common Unix Printing System]] and desktop application projects such as [[GNOME]], [[KDE]], [[Firefox]], [[Mozilla Thunderbird|Thunderbird]], [[LibreOffice]] and [[OpenOffice.org|OpenOffice]] have switched to emit print jobs in PDF.<ref>{{cite web|title=PDF as Standard Print Job Format|url=http://www.linuxfoundation.org/collaborate/workgroups/openprinting/pdf_as_standard_print_job_format|website=The Linux Foundation|publisher=[[Linux Foundation]]|accessdate=21 June 2016}}</ref>

Some desktop printers also support direct PDF printing, which can interpret PDF data without external help. Currently, all PDF capable printers also support PostScript, but most PostScript printers do not support direct PDF printing.

The [[Free Software Foundation]] once considered one of their [[High priority free software projects|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."<ref>On 2014-04-02, a note dated 2009-02-10 referred to [http://www.fsf.org/campaigns/priority.html Current FSF High Priority Free Software Projects] as a source. Content of the latter page, however, changes over time.</ref><ref>{{cite web |url=http://gnupdf.org/Goals_and_Motivations |title=Goals and Motivations |authors=GNUpdf contributors| publisher=''GNUpdf'' |date=2007-11-28 |website=gnupdf.org |accessdate=2014-04-02 }}</ref> In 2011, however, the [[GNU PDF]] project was removed from the list of "high priority projects" due to the maturation of the [[Poppler (software)|Poppler library]],<ref>{{cite web|title=GNU PDF project leaves FSF High Priority Projects list; mission complete! |url=http://www.fsf.org/blogs/community/gnu-pdf-project-leaves-high-priority-projects-list-mission-complete|date=2011-10-06|first=Matt|last=Lee|publisher=Free Software Foundation|website=fsf.org|accessdate=2014-04-02}}</ref> which has enjoyed wider use in applications such as [[Evince]] with the [[GNOME]] desktop environment. Poppler is based on [[Xpdf]]<ref>[http://poppler.freedesktop.org/ Poppler homepage] "Poppler is a PDF rendering library based on the xpdf-3.0 code base." (last checked on 2009-02-10)</ref><ref>[http://cgit.freedesktop.org/poppler/poppler/tree/README-XPDF Xpdf license] "Xpdf is licensed under the GNU General Public License (GPL), version 2 or 3." (last checked on 2012-09-23).</ref> 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]].<ref>[http://pdfbox.apache.org/ The Apache PDFBox project] . Retrieved 2009-09-19.</ref>

== See also ==
{{Portal|Software}}{{columns-list|2|
* [[Open XML Paper Specification]]
* [[Comparison of OpenXPS and PDF]]
* [[DjVu]]
* [[PAdES]], <small>PDF Advanced Electronic Signature</small>
* [[Web document]]
* [[XSL Formatting Objects]]
}}

== References ==
{{Reflist|30em}}

== Further reading ==
* {{Cite book | last1 = Hardy | first1 = M. R. B. | last2 = Brailsford | first2 = D. F. | chapter = Mapping and displaying structural transformations between XML and PDF | title = Proceedings of the 2002 ACM symposium on Document engineering - DocEng '02 | pages = 95–102| year = 2002 | url = http://www.cs.nott.ac.uk/~dfb/Publications/Download/2002/Hardy02.pdf| doi = 10.1145/585058.585077| publisher = Proceedings of the 2002 ACM symposium on Document engineering| isbn = 1-58113-594-7}}
*Standards
** PDF 1.7 [http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf]
** PDF 1.6 (ISBN 0-321-30474-8)
** PDF 1.4 (ISBN 0-201-75839-3)
** PDF 1.3 (ISBN 0-201-61588-6)

== External links ==
{{Commons category|PDF}}
* [http://www.quora.com/PDF-file-format/How-was-the-PDF-format-created How was the PDF format created? Quora]
* [http://www.pdfa.org/ PDF Association] - The PDF Association is the industry association for software developers producing or processing PDF files.
* [http://partners.adobe.com/public/developer/tips/topic_tip31.html Adobe PDF 101: Summary of PDF]
* [https://www.adobe.com/print/features/psvspdf/ Adobe: PostScript vs. PDF] – Official introductory comparison of PS, EPS vs. PDF.
* {{webarchive |url=https://web.archive.org/web/20110424013530/http://www.aiim.org/Resources/Archive/Magazine/2007-Jul-Aug/33448 |date=April 24, 2011 |title=''PDF Standards....transitioning the PDF specification from a de facto standard to a de jure standard'' }} – Information about PDF/E and PDF/UA specification for accessible documents file format (archived by [[Wayback Machine|The Wayback Machine]])
* [http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38920 ISO 19005-1:2005] the PDF/A-1 ISO standard published by the [[International Organization for Standardization]] (chargeable)
* [https://www.adobe.com/devnet/pdf/pdf_reference.html PDF Reference and Adobe Extensions to the PDF Specification]
* [http://www.mactech.com/articles/mactech/Vol.15/15.09/PDFIntro/ Portable Document Format: An Introduction for Programmers] – Introduction to PDF vs. PostScript and PDF internals (up to v1.3)
* [http://www.planetpdf.com/enterprise/article.asp?ContentID=6519 The Camelot Paper] – the paper in which John Warnock outlined the project that created PDF
* [http://river-valley.zeeba.tv/everything-you-wanted-to-know-about-pdf-but-were-afraid-to-ask/ Everything you wanted to know about PDF but were afraid to ask] - recording of talk by Leonard Rosenthol (Adobe Systems) at TUG 2007
* [http://www.data2type.de/en/xml-xslt-xslfo/xsl-fo/ How to produce PDF with XSL-FO]
* [http://pdfextractoronline.com/ PDF To Excel Converter]
{{Graphics file formats}}
{{Office document file formats}}
{{ISO standards}}
{{Ebooks}} <!--navbox-->

[[Category:1993 introductions]]
[[Category:Adobe Systems]]
[[Category:Graphics file formats]]
[[Category:Electronic documents]]
[[Category:Open formats]]
[[Category:Page description languages]]
[[Category:Vector graphics]]
[[Category:Office document file formats]]
[[Category:Digital press]]
[[Category:ISO standards]]

Revision as of 03:45, 23 January 2017

Portable Document Format
SVG logo
Adobe PDF icon
Filename extension
.pdf
Internet media type
  • application/pdf,[1]
  • application/x-pdf
  • application/x-bzpdf
  • application/x-gzpdf
Type code'PDF '[1] (including a single space)
Uniform Type Identifier (UTI)com.adobe.pdf
Magic number%PDF
Developed byAdobe Systems
Initial releaseJune 15, 1993; 30 years ago (1993-06-15)
Latest release
1.7
Extended toPDF/A, PDF/E, PDF/UA, PDF/VT, PDF/X
StandardISO 32000-1
Free format?Yes
Websitewww.adobe.com/devnet/pdf/pdf_reference_archive.html

The Portable Document Format (PDF) is a file format used to present documents in a manner independent of application software, hardware, and operating systems.[2] Each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, graphics, and other information needed to display it.

A PDF file captures document text, fonts, images, and even formatting of documents from a variety of applications. You can e-mail a PDF document to your friend and it will look the same way on his screen as it looks on yours, even if he has a Mac and you have a PC.[3]

History and standardization

PDF was developed in the early 1990s[4] as a way to share computer documents, including text formatting and inline images.[5] It was among a number of competing formats such as DjVu, Envoy, Common Ground Digital Paper, Farallon Replica and even Adobe's own PostScript format. In those early years before the rise of the World Wide Web and HTML documents, PDF was popular mainly in desktop publishing workflows. Adobe Systems made the PDF specification available free of charge in 1993. PDF was a proprietary format controlled by Adobe, until it was officially released as an open standard on July 1, 2008, and published by the International Organization for Standardization as ISO 32000-1:2008,[6][7] 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.[8]

However, there are still 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 application of the ISO 32000-1 specification. These proprietary technologies are not standardized and their specification is published only on Adobe’s website.[9][10][11][12][13] Many of them are also not supported by popular third-party implementations of PDF. So when organizations publish PDFs which use these proprietary technologies, they present accessibility issues for some users.

In 2014, ISO TC 171 voted to deprecate XFA for ISO 32000-2 ("Next-generation PDF").[14]

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

PostScript is a page description language run in an interpreter to generate an image, a process requiring many resources. It can handle graphics and standard features of programming languages such as 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 (fonts, layout, measurements) 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 (from version 1.4) supports graphic transparency; 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 (unless the optional PostScript Document Structuring Conventions have been carefully complied with).

Technical overview

File structure

A PDF file is basically 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 ("Carousel" Object Structure) format.[15] A COS tree file consists primarily of objects, of which there are eight types:[16]

  • 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
  • The null object

Furthermore, there may be comments, introduced with the percent sign (%). Comments may contain 8-bit characters.

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. An index table, also called the cross-reference table and marked with the xref keyword, follows the main body and gives the byte offset of each indirect object from the start of the file.[17] 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). Beginning with PDF version 1.5, indirect objects may also be located in special streams known as object streams. This technique reduces the size of files that have large numbers of small indirect objects and is especially useful for Tagged PDF.

At the end of a PDF file is a trailer introduced with the trailer keyword. It contains

  • a dictionary
  • an offset to the start of the cross-reference table (the table starting with the xref keyword)
  • and the %%EOF end-of-file marker.

The dictionary contains

  • 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.

There are two layouts to the PDF files: non-linear (not "optimized") and linear ("optimized"). Non-linear PDF files consume less disk space 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. Linear 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 they are written to disk in a linear (as in page order) fashion.[18] PDF files may be optimized using Adobe Acrobat software or QPDF.

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 1.6) 24 graphics state properties, of which some of the most important are:

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, 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 pattern of which the simplest are the axial shade (Type 2) and radial shade (Type 3).

Raster images

Raster images in PDF (called Image XObjects) are represented by dictionaries with an associated stream. The dictionary describes properties of the image, and the stream contains the image data. (Less commonly, a raster image 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 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 RFC 1951 (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)
  • 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
  • DCTDecode a lossy filter based on the JPEG standard
  • CCITTFaxDecode a lossless bi-level (black/white) filter based on the Group 3 or Group 4 CCITT (ITU-T) fax compression standard defined in ITU-T T.4 and T.6
  • JBIG2Decode a lossy or lossless bi-level (black/white) filter based on the JBIG2 standard, introduced in PDF 1.4
  • 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.

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 (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.

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.[19] These fonts, or suitable substitute fonts with the same metrics, should be available in most PDF readers. However, since Adobe Acrobat version 6, most of these fonts are not guaranteed to be available in the reader, and may only display correctly if the system has them installed.[20] Fonts may be substituted if they are not embedded in a PDF.

Encodings

Within text strings, characters are shown using character codes (integers) that map to glyphs in the current font using an encoding. There are a number of predefined encodings, including WinAnsi, MacRoman, and a large number of 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).[21] 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.

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.[22]

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 and Flash animation.

Rich Media PDF is a term that is used to describe interactive content that can be embedded or linked to inside of a PDF. This content must be produced using the Flash file format. When Adobe bought Macromedia, the jewel of the company was Flash, and the Flash player was embedded inside Adobe Acrobat and Adobe Reader, removing the need for third-party plug-ins such as Flash, QuickTime, or Windows Media. Unfortunately, this caused a rift with Apple as QuickTime video was prohibited from PDF. Rich Media expert Robert Connolly believes this event triggered the war between Apple and Adobe over the Flash iPhone/iPad dispute. Rich Media PDF will not operate in Apple's iOS devices such as the iPad, and interactivity is limited.

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 PDF specification:[23][24][25][26]

  • AcroForms (also known as Acrobat forms), introduced in the PDF 1.2 format specification and included in all later PDF specifications.
  • Adobe XML Forms Architecture (XFA) forms, introduced in the PDF 1.5 format specification. The XFA specification is not included in the PDF specification, it is only referenced as an optional feature. Adobe XFA Forms are not compatible with AcroForms.[27]

AcroForms

AcroForms were introduced in the PDF 1.2 format. AcroForms permit using 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):[23]

  • HTML Form format (HTML 4.01 Specification since PDF 1.5; HTML 2.0 since 1.2)
  • Forms Data Format (FDF)
  • XML Forms Data Format (XFDF) (external XML Forms Data Format Specification, Version 2.0; supported since PDF 1.5; it replaced the "XML" form submission format defined in PDF 1.4)
  • PDF (the entire document can be submitted rather than individual fields and values). (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.[28][29][30] 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.[23]

Forms Data Format (FDF)
Forms Data Format (FDF)
Filename extension
.fdf
Internet media type
application/vnd.fdf[31]
Type code'FDF'
Developed byAdobe Systems
Initial release1996 (1996) (PDF 1.2)
Extended fromPDF
Extended toXFDF
StandardISO 32000-1:2008
Free format?Yes

The Forms Data Format (FDF) 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 (since PDF 1.2). 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. Beginning in PDF 1.3, FDF can be used to define a container for annotations that are separate from the PDF document they apply to. FDF typically encapsulates information such as X.509 certificates, requests for certificates, directory settings, timestamp server settings, and embedded PDF files for network transmission.[30] The FDF uses the MIME content type application/vnd.fdf, filename extension .fdf and on Mac OS it uses file type 'FDF'.[23] Support for importing and exporting FDF stand-alone files is not widely implemented in free or freeware PDF software. For example, there is no import/export support in Evince, Okular, Poppler, KPDF or Sumatra PDF, however, Evince, Okular and Poppler support filling in of PDF Acroforms and saving filled data inside the PDF file. Import support for stand-alone FDF files is implemented in Adobe Reader; export and import support (including saving of FDF data in PDF) is for example implemented in Foxit Reader and PDF-XChange Viewer Free; saving of FDF data in a PDF file is also supported in pdftk.

XML Forms Data Format (XFDF)
XML Forms Data Format (XFDF)
Filename extension
.xfdf
Internet media type
application/vnd.adobe.xfdf[32]
Type code'XFDF'
Developed byAdobe Systems
Initial releaseJuly 2003 (2003-07) (referenced in PDF 1.5)
Latest release
3.0
August 2009; 14 years ago (2009-08)
Extended fromPDF, FDF, XML
StandardNo (under standardization as ISO/CD 19444-1[33])
WebsiteXFDF 3.0 specification

XML Forms Data Format (XFDF) is the XML version of Forms Data Format, but the XFDF implements only a subset of FDF containing forms and annotations. There are not XFDF equivalents for some entries in the FDF dictionary - 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 (but not included) in PDF 1.5 specification (and in later versions). It is described separately in XML Forms Data Format Specification.[29] 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 November 2014, XFDF 3.0 is in the ISO/IEC standardization process under the formal name ISO/CD 19444-1 - Document management - XML forms data format - Part 1: XFDF 3.0.[33]

XFDF can be used 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. A support for importing and exporting XFDF stand-alone files is not widely implemented in free or freeware PDF software. Import of XFDF is implemented in Adobe Reader 5 and later versions; import and export is implemented in PDF-XChange Viewer Free; embedding of XFDF data in PDF form is implemented in pdftk (pdf toolkit).

Adobe XML Forms Architecture (XFA)

In the PDF 1.5 format, Adobe Systems introduced a new, proprietary format for forms, namely Adobe XML Forms Architecture (XFA) forms. The XFA 2.02 is referenced in the PDF 1.5 specification (and also in later versions) but is described separately in Adobe XML Forms Architecture (XFA) Specification, which has several versions.[34] XFA specification is not included in ISO 32000-1 PDF 1.7 and is only referenced as an external proprietary specification created by Adobe. XFA was not standardized as an ISO standard. In 2011 the ISO Committee (TC 171/SC 2/WG 8) urged Adobe Systems to submit the XFA Specification for standardization.[10]

Adobe XFA Forms are not compatible with AcroForms. Adobe Reader contains "disabled features" for use of XFA Forms, that activate only when opening a PDF document that was created using enabling technology available only from Adobe.[35][36] The XFA Forms are not compatible with Adobe Reader prior to version 6.

XFA forms can be created and used as PDF files or as XDP (XML Data Package) files. The format of an XFA resource in PDF is described by the XML Data Package Specification.[23] The XDP may be a standalone document or it may in turn be carried inside a PDF document. XDP provides a mechanism for packaging form components within a surrounding XML container. An XDP can also package a PDF file, along with XML form and template data.[34] PDF may contain XFA (in XDP format), but also XFA may contain PDF.[34] When the XFA (XML Forms Architecture) grammars used for an XFA form are moved from one application to another, they must be packaged as an XML Data Package.[37]

When the PDF and XFA are combined, the result is a form in which each page of the XFA form overlays a PDF background. This architecture is sometimes referred to as XFAF (XFA Foreground). The alternative is to express all of the form, including boilerplate, directly in XFA (without using PDF, or only using "Shell PDF" which is a container for XFA with minimal skeleton of PDF markup, or using a pre-rendered depiction of a static XFA form as PDF pages). It is sometimes called full XFA.[37]

Starting with PDF 1.5, the text contents of variable text form fields, as well as markup annotations may include formatting information (style information). These rich text strings are XML documents that conform to the rich text conventions specified for the XML Forms Architecture specification 2.02, which is itself a subset of the XHTML 1.0 specification, augmented with a restricted set of CSS2 style attributes.[23] In PDF 1.6, PDF supports the rich text elements and attributes specified in the XML Forms Architecture (XFA) Specification, 2.2. In PDF 1.7, PDF supports the rich text elements and attributes specified in the XML Forms Architecture (XFA) Specification, 2.4.[23]

Most PDF processors do not handle XFA content. When generating a shell PDF it is recommended to include in the PDF markup a simple one-page PDF image displaying a warning message (e.g. "To view the full contents of this document, you need a later version of the PDF viewer.", etc.). PDF processors that can render XFA content should either not display the supplied warning page image or replace it quickly with the dynamic form content.[38] Examples of PDF software with some support of XFA rendering include Adobe Reader for Windows, Linux, macOS (but not Adobe Reader Mobile for Android or iOS) or Nuance PDF Reader.

In 2014, ISO TC 171 voted to deprecate XFA for ISO 32000-2 ("Next-generation PDF").[14]

Logical structure and accessibility

A "tagged" PDF (ISO 32000-1:2008 14.8) 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 (text, graphics, and images) to be extracted and reused for other purposes.[39]

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 as specified in ISO 32000-1 are relatively vague, support for tagged PDF amongst consuming devices, including assistive technology (AT), is uneven.[40]

An AIIM project to develop an ISO-standardized subset of PDF specifically targeted at accessibility began in 2004, eventually becoming PDF/UA.

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, user password, which encrypts the file and prevents opening, and owner password, which specifies operations that should be restricted even when the document is decrypted, which can include: printing, copying text and graphics out of the document, modifying the document, or adding or modifying text notes and AcroForm fields. The user password (controls opening) encrypts the file and requires password cracking to defeat, with difficulty depending on password strength and encryption method – it is potentially very secure (assuming good password and encryption method without known attacks). The owner password (controls operations) does not encrypt the file, and instead relies on client software to respect these restrictions, and is not secure. An "owner password" can be removed by many commonly available "PDF cracking" software, including some free online services.[41] 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.[42][43][44]

There are a number of commercial solutions including Adobe LiveCycle Rights Management and Locklizard PDF DRM[45] that are more robust means of information rights management. Not only can they restrict document access but they also reliably enforce permissions in ways that the standard security handler does not.[46]

Usage rights

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:[23]

  • to save the PDF document along with modified form and/or annotation data
  • import form data files in FDF, XFDF and text (CSV/TSV) formats
  • export form data files in FDF and XFDF formats
  • submit form data
  • instantiate new pages from named page templates
  • apply a digital signature to existing digital signature form field
  • create, delete, modify, copy, import, export annotations

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. The PDF 1.5 specification declares that other PDF viewer applications are free to use this same mechanism for their own purposes.[23]

File attachments

PDF files can have document-level and page-level file attachments, which the reader can access and open or save to their local filesystem. PDF attachments can be added to existing PDF files for example using pdftk. Adobe Reader provides support for attachments, and poppler-based readers like Evince or Okular also have some support for document-level attachments.

Metadata

PDF files can contain two types of metadata.[47] 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.

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. This allows metadata to be attached to any stream in the document, such as information about embedded illustrations, as well as the whole document (attaching to the document catalog), using an extensible schema.

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.[48]

Technical issues

Accessibility

PDF files can be created specifically to be accessible for disabled people.[49][50][51][52][53] PDF file formats in use as of 2014 can include tags (XML), text equivalents, captions, audio descriptions, etc. Tagged PDF is required in the PDF/A-1a specification.[54][55] Some software can automatically produce tagged PDFs, but this feature is not always enabled by default.[56][57] Leading screen readers, including JAWS, Window-Eyes, Hal, and Kurzweil 1000 and 3000 can read tagged PDFs aloud, as can later versions of the Acrobat and Acrobat Reader programs.[58][59][60] Moreover, tagged PDFs can be re-flowed and magnified for readers with visual impairments. Problems remain with adding tags to older PDFs and those that are generated from scanned documents. In these cases, accessibility tags and re-flowing are unavailable, and must be created either manually or with OCR techniques. These processes are inaccessible to some disabled people.

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 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 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.[61]

From time to time, new vulnerabilities are discovered in various versions of Adobe Reader,[62] 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.[63] 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.[64]

Usage restrictions and monitoring

PDFs may be encrypted so that a password is needed to view or edit the contents. The PDF Reference defines both 40-bit and 128-bit encryption, both making use of a complex system of RC4 and MD5. The PDF Reference also defines ways that third parties can define their own encryption systems for PDF.

PDF files may also contain embedded DRM restrictions that provide further controls that limit copying, editing or printing. The restrictions on copying, editing, or printing depend on the reader software to obey them, so the security they provide is limited.

The PDF Reference has technical details for an end-user overview.[65] Like HTML files, PDF files may submit information to a web server. This could be used to track the IP address of the client PC, a process known as phoning home. After update 7.0.5 to Acrobat Reader, the user is notified "... via a dialogue box that the author of the file is auditing usage of the file, and be offered the option of continuing."[66]

Through its LiveCycle Policy Server product, Adobe provides a method to set security policies on specific documents. This can include requiring a user to authenticate and limiting the period during which a document can be accessed or amount of time a document can be opened while offline. Once a PDF document is tied to a policy server and a specific policy, that policy can be changed or revoked by the owner. This controls documents that are otherwise "in the wild." Each document open and close event can also be tracked by the policy server. Policy servers can be set up privately or Adobe offers a public service through Adobe Online Services. As with other forms of DRM, adherence to these policies and restrictions may or may not be enforced by the reader software being used.

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.[67] The free Adobe Reader cannot remove these settings.

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 (i.e., not text)
  • 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

In later PDF revisions, a PDF document can also support links (inside document or web page), forms, JavaScript (initially available as plugin for Acrobat 3.0), or any other types of embedded contents that can be handled using plug-ins.

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.[68][69]

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 and most Linux distributions, LibreOffice, Microsoft Office 2007 (if updated to SP2) and later,[70] 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 (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 rasterisation. RIPs capable of processing PDF directly include the Adobe PDF Print Engine[71] from Adobe Systems and Jaws[72] and the Harlequin RIP from Global Graphics.

Editing

There is specialized software for editing PDF files, though the choices are much more limited and often more expensive than creating and editing standard editable document formats. Version 0.46 and later of Inkscape allows PDF editing through an intermediate translation step involving Poppler.

Serif PagePlus can open, edit and save existing PDF documents, as well as publishing of documents created in the package.

Enfocus PitStop Pro, a plugin for Acrobat, allows manual and automatic editing of PDF files,[73] while the free Enfocus Browser makes it possible to edit the low-level structure of a PDF.[74]

Dochub, is a free online PDF editing tool that can be used without purchasing anything.[75]

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. Another GPL-licensed application native to the unix environment is Xournal. Xournal allows for annotating in different fonts and colours, as well as a rule for quickly underlining and highlighting lines of text or paragraphs. Xournal also has a shape recognition tool for squares, rectangles and circles. In Xournal annotations may be moved, copied and pasted. 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 freeware 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.

For mobile annotation, iAnnotate PDF (from Branchfire) and GoodReader (from Aji) allow annotation of PDFs as well as exporting summaries of the annotations.

There are also web annotation systems that support annotation in pdf and other documents formats, e.g., A.nnotate, crocodoc, WebNotes.

In cases where PDFs are expected to have all of the functionality of paper documents, ink annotation is required. Some programs that accept ink input from the mouse may not be responsive enough for handwriting input on a tablet. Existing solutions on the PC include PDF Annotator and Qiqqa.

Other

Examples of PDF software as online services including Scribd for viewing and storing, Pdfvue for online editing, and 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.[76]

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.[77] 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.[78]

Some desktop printers also support direct PDF printing, which can interpret PDF data without external help. Currently, all PDF capable printers also support PostScript, but most PostScript printers do not support direct PDF printing.

The Free Software Foundation once considered 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."[79][80] In 2011, however, the GNU PDF project was removed from the list of "high priority projects" due to the maturation of the Poppler library,[81] which has enjoyed wider use in applications such as Evince with the GNOME desktop environment. Poppler is based on Xpdf[82][83] 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.[84]

See also

2

References

  1. ^ a b The application/pdf Media Type, RFC 3778, Category: Informational, 2004
  2. ^ Adobe Systems Incorporated, PDF Reference, Sixth edition, version 1.23 (30 MB), Nov 2006, p. 33.
  3. ^ TechTerms.com
  4. ^ "Adobe's Bob Wulff knows Acrobat and PDF -- inside and out".
  5. ^ "The Camelot Project" (PDF).
  6. ^ "ISO 32000-1:2008 - Document management – Portable document format – Part 1: PDF 1.7". Iso.org. 2008-07-01. Retrieved 2010-02-21.
  7. ^ Orion, Egan (2007-12-05). "PDF 1.7 is approved as ISO 32000". The Inquirer. The Inquirer. Archived from the original on December 13, 2007. Retrieved 2007-12-05. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  8. ^ Adobe Systems Incorporated (2008), Public Patent License, ISO 32000-1: 2008 – PDF 1.7 (PDF), retrieved 2011-07-06
  9. ^ "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". European Commission. 2013-06-25. Retrieved 2013-10-20. 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).
  10. ^ a b ISO/TC 171/SC 2/WG 8 N 603 - Meeting Report (PDF), 2011-06-27, XFA is not to be ISO standard just yet. ... The Committee urges Adobe Systems to submit the XFA Specification, XML Forms Architecture (XFA), to ISO for standardization ... The Committee is concerned about the stability of the XFA specification ... Part 2 will reference XFA 3.1
  11. ^ "Embedding and publishing interactive, 3-dimensional, scientificfigures in Portable Document Format (PDF) files". Retrieved 2013-10-20. ... the implementation of the U3D standard was not complete and proprietary extensions were used.
  12. ^ Leonard Rosenthol, Adobe Systems (2012). "PDF and Standards" (PDF). Retrieved 2013-10-20.
  13. ^ Duff Johnson (2010-06-10), Is PDF an open standard? - Adobe Reader is the de facto Standard, not PDF, retrieved 2014-01-19
  14. ^ a b "DRAFT INTERNATIONAL STANDARD ISO/DIS 32000-2". ISO. Retrieved 2016-08-04. Editor's note: XFA forms have been deprecated from ISO 32000-2 in accordance with the outcome of the letter ballot following the Pretoria meetings.
  15. ^ Jim Pravetz. "In Defense of COS, or Why I Love JSON and Hate XML". jimpravetz.com.
  16. ^ Adobe Systems, PDF Reference, p. 51.
  17. ^ Adobe Systems, PDF Reference, pp. 39–40.
  18. ^ "Adobe Developer Connection: PDF Reference and Adobe Extensions to the PDF Specification". Adobe Systems. Retrieved 2010-12-13.
  19. ^ "Desktop Publishing: Base 14 Fonts - Definition". About.com Tech.
  20. ^ The PDF Font Aquarium
  21. ^ "PDF Reference Sixth Edition, version 1.7, table 5.11" (PDF).
  22. ^ PDF Blend Modes Addendum
  23. ^ a b c d e f g h i Adobe Systems Incorporated (2008-07-01), Document Management – Portable Document Format – Part 1: PDF 1.7, First Edition (PDF), retrieved 2010-02-19
  24. ^ "Gnu PDF - PDF Knowledge - Forms Data Format". Archived from the original on 2013-01-01. Retrieved 2010-02-19.
  25. ^ "About PDF forms". Retrieved 2010-02-19.
  26. ^ "Convert XFA Form to AcroForm?". 2008. Retrieved 2010-02-19.
  27. ^ "Migrating from Adobe Acrobat forms to XML forms". Retrieved 2010-02-22.
  28. ^ Adobe Systems Incorporated (2007-10-15). "Using Acrobat forms and form data on the web". Retrieved 2010-02-19.
  29. ^ a b XML Forms Data Format Specification, version 2 (PDF), September 2007, retrieved 2010-02-19
  30. ^ a b FDF Data Exchange Specification (PDF), 2007-02-08, retrieved 2010-02-19
  31. ^ IANA Application Media Types - vnd.fdf, retrieved 2010-02-22
  32. ^ IANA Application Media Types - Vendor Tree - vnd.adobe.xfdf, retrieved 2010-02-22
  33. ^ a b ISO/CD 19444-1 - Document management - XML forms data format - Part 1: XFDF 3.0, retrieved 2014-11-26
  34. ^ a b c Adobe Systems Incorporated. "Adobe XML Forms Architecture (XFA)". Retrieved 2010-02-19.
  35. ^ Adobe Reader - Software license agreement (PDF), retrieved 2010-02-19
  36. ^ "LiveCycle Reader Extensions ES features and benefits". Archived from the original on December 19, 2009. Retrieved 2010-02-19. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  37. ^ a b XML Forms Architecture (XFA) Specification Version 2.5 (PDF), 2007-06-08, retrieved 2010-02-19
  38. ^ XML Forms Architecture (XFA) Specification Version 3.3 (PDF), 2012-01-09, retrieved 2014-04-09
  39. ^ What is Tagged PDF?
  40. ^ "Is PDF accessible?". washington.edu.
  41. ^ "FreeMyPDF.com - Removes passwords from viewable PDFs". freemypdf.com.
  42. ^ Jeremy Kirk. "Adobe admits new PDF password protection is weaker".
  43. ^ Bryan Guignard. "How secure is PDF" (PDF).
  44. ^ "PDF Security Overview: Strengths and Weaknesses" (PDF).
  45. ^ "LockLizard Develops Zero Footprint Solution for PDF Security".
  46. ^ "PDF DRM Security Software for Adobe Document Protection".
  47. ^ Adobe PDF reference version 1.7, section 10.2
  48. ^ "Developer Resources". adobe.com.
  49. ^ "PDF Accessibility". WebAIM. Retrieved 2010-04-24.
  50. ^ Joe Clark (2005-08-22). "Facts and Opinions About PDF Accessibility". Retrieved 2010-04-24.
  51. ^ "Accessibility and PDF documents". Web Accessibility Center. Retrieved 2010-04-24.
  52. ^ "PDF Accessibility Standards v1.2". Retrieved 2010-04-24.
  53. ^ PDF Accessibility (PDF), California State University, retrieved 2010-04-24
  54. ^ Frequently Asked Questions (FAQs) – ISO 19005-1:2005 – PDF/A-1, Date: July 10, 2006 (PDF), 2006-07-10, retrieved 2011-07-06
  55. ^ "PDF/A – A Look at the Technical Side". Retrieved 2011-07-06.
  56. ^ LibreOffice Help - Export as PDF, retrieved 2012-09-22
  57. ^ Exporting PDF/A for long-term archiving, 2008-01-11
  58. ^ "Adobe Reader 8 - Read a PDF with Read Out Loud". Retrieved 2010-04-24.
  59. ^ Biersdorfer, J.D. (2009-04-10). "Tip of the Week: Adobe Reader's 'Read Aloud' Feature". The New York Times. Retrieved 2010-04-24.
  60. ^ Accessing PDF documents with assistive technology: A screen reader user's guide (PDF), Adobe, retrieved 2010-04-24
  61. ^ Adobe Forums, Announcement: PDF Attachment Virus "Peachy", 15 August 2001.
  62. ^ "Security bulletins and advisories". Adobe. Retrieved 2010-02-21.
  63. ^ Steve Gibson - SecurityNow Podcast
  64. ^ "Malicious PDFs Execute Code Without a Vulnerability". PCMAG.
  65. ^ "Create Adobe PDF Online - Security Settings Help". Createpdf.adobe.com. Retrieved 2010-02-21.
  66. ^ New features and issues addressed in the Acrobat 7.0.5 Update (Acrobat and Adobe Reader for Windows and Mac OS)
  67. ^ "Getting Familiar with Adobe Reader > Understanding Preferences". Retrieved 2009-04-22.
  68. ^ "3D supported formats". Adobe. 2009-07-14. Retrieved 2010-02-21.
  69. ^ "Acrobat 3D Developer Center". Adobe. Retrieved 2010-02-21.
  70. ^ "Description of 2007 Microsoft Office Suite Service Pack 2 (SP2)". Microsoft. Retrieved 2009-05-09.
  71. ^ "Adobe PDF Print Engine". adobe.com.
  72. ^ "Jaws® 3.0 PDF and PostScript RIP SDK". globalgraphics.com.
  73. ^ "Preflight and edit PDF files in Acrobat". enfocus.com.
  74. ^ "Enfocus product overview - online store". enfocus.com.
  75. ^ "DocHub". DocHub. Retrieved 2015-12-12.
  76. ^ "Harlequin MultiRIP". Retrieved 2014-03-02.
  77. ^ Press-Ready PDF Files "For anyone interested in having their graphic project commercially printed directly from digital files or PDFs." (last checked on 2009-02-10).
  78. ^ "PDF as Standard Print Job Format". The Linux Foundation. Linux Foundation. Retrieved 21 June 2016.
  79. ^ On 2014-04-02, a note dated 2009-02-10 referred to Current FSF High Priority Free Software Projects as a source. Content of the latter page, however, changes over time.
  80. ^ "Goals and Motivations". gnupdf.org. GNUpdf. 2007-11-28. Retrieved 2014-04-02. {{cite web}}: Cite uses deprecated parameter |authors= (help); Italic or bold markup not allowed in: |publisher= (help)
  81. ^ Lee, Matt (2011-10-06). "GNU PDF project leaves FSF High Priority Projects list; mission complete!". fsf.org. Free Software Foundation. Retrieved 2014-04-02.
  82. ^ Poppler homepage "Poppler is a PDF rendering library based on the xpdf-3.0 code base." (last checked on 2009-02-10)
  83. ^ Xpdf license "Xpdf is licensed under the GNU General Public License (GPL), version 2 or 3." (last checked on 2012-09-23).
  84. ^ The Apache PDFBox project . Retrieved 2009-09-19.

Further reading

External links