[accepted revision] | [accepted revision] |
Content deleted Content added
Reverted 1 pending edit by Nisat Ali Moomin to revision 1217849506 by Three Sixty: spam |
ClueBot NG (talk | contribs) m Reverting possible vandalism by 182.239.164.240 to version by Annh07. Report False Positive? Thanks, ClueBot NG. (4335440) (Bot) |
||
(26 intermediate revisions by 19 users not shown) | |||
Line 38:
}}
'''Portable Document Format''' ('''PDF'''), standardized as '''ISO 32000''', is a [[file format]] developed by [[Adobe Inc.|Adobe]] in 1992 to present [[document]]s, including text formatting and images, in a manner independent of [[application software]], [[Computer hardware|hardware]], and [[operating system]]s.<ref name="pdf-ref-1.7">{{cite web|author=Adobe Systems Incorporated|url=https://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf|title=PDF Reference|date=November 2006|edition=6th|version=1.7|url-status=dead|archiveurl=https://web.archive.org/web/20081001170454/https://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf|archivedate=October 1, 2008|accessdate=January 12, 2023}}</ref><ref>{{Cite web|last=Warnock|first=J.|url=https://www.pdfa.org/norm-refs/warnock_camelot.pdf|title=The Camelot Project|date=14 October 2004<!--dates from PDF source-->|orig-date=Original date 5 May 1995|archive-url=https://web.archive.org/web/20110718230852/http://www.planetpdf.com/planetpdf/pdfs/warnock_camelot.pdf|archive-date=July 18, 2011|url-status=live}}</ref> Based on the [[PostScript]] language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, [[font]]s, [[vector graphics]], [[raster images]] and other information needed to display it. PDF has its roots in "The Camelot Project" initiated by
PDF was standardized as ISO 32000 in 2008.<ref>{{cite web |url = http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf |title = ISO 32000-1:2008 |archive-url=https://web.archive.org/web/20180726064724/http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf | archive-date=July 26, 2018|url-status=dead}}</ref> The last edition as ISO 32000-2:2020 was published in December 2020.
Line 46:
{{Main|History of PDF}}
[[Adobe Systems]] made the PDF specification available free of charge in 1993. In the early years PDF was popular mainly in [[desktop publishing]] workflows, and competed with several other formats, including [[DjVu]], [[Envoy (WordPerfect)|Envoy]], Common Ground Digital Paper, Farallon Replica and even Adobe's own PostScript format.
Line 58:
In April 2023 the PDF Association made ISO 32000-2 available for download free of charge.<ref name=nowfree>{{cite press release| title=Announcing no-cost access to the latest PDF standard: ISO 32000-2 (PDF 2.0)| publisher=PDF Association| url=https://pdfa.org/sponsored-standards| date=16 June 2023| orig-date=Updated; originally published 5 April 2023| access-date=October 6, 2023| archive-date=September 23, 2023| archive-url=https://web.archive.org/web/20230923202322/https://pdfa.org/sponsored-standards/| url-status=live}}</ref>
==
A PDF file is often a combination of [[vector graphics]], text, and [[bitmap graphics]]. The basic types of content in a PDF are:
Line 78:
[[PostScript]] is a [[page description language]] run in an [[Interpreter (computing)|interpreter]] to generate an image.<ref name="Pfiffner_Page_137" /> It can handle graphics and has standard features of [[programming language]]s such as [[conditional (computer programming)|branching]] and [[loop (computing)|looping]].<ref name="Pfiffner_Page_137" /> PDF is a subset of PostScript, simplified to remove such [[control flow]] features, while graphics commands remain.<ref name="Pfiffner_Page_137" />
PostScript was originally designed for a drastically different [[use case]]: transmission of one-way linear print jobs in which the PostScript interpreter would collect a series of commands until it encountered the <code>showpage</code> command, then execute all the commands to render a page as a raster image to a printing device.<ref name="Pfiffner_Page_139">{{cite book |last1=Pfiffner |first1=Pamela |title=Inside the Publishing Revolution: The Adobe Story |date=2003 |publisher=Peachpit Press |location=Berkeley |isbn=0-321-11564-3 |page=139}}</ref>
Traditionally, to go from PostScript to PDF, a source PostScript file (that is, an executable program) is used as the basis for generating PostScript-like PDF code (see, e.g., [[Adobe Distiller]]). This is done by applying standard [[compiler]] techniques like [[loop unrolling]], [[inline expansion|inlining]] and removing unused branches, resulting in code that is purely declarative and static.<ref name="Pfiffner_Page_139" />
As a document format, PDF has several advantages over PostScript:
Line 91:
Its disadvantages are:
*
* A (sometimes much) larger file size.<ref>{{cite web |last1=Anton Ertl |first1=Martin |title=What is the PDF format good for? |url=https://www.complang.tuwien.ac.at/anton/why-not-pdf.html |website=
PDF since v1.6 supports embedding of interactive 3D documents: 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 Systems Inc. |date=July 14, 2009 |access-date=February 21, 2010
Line 115:
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 if residing in the document root. Beginning with PDF version 1.5, indirect objects (except other streams) may also be located in special streams known as ''object streams'' (marked <code>/Type /ObjStm</code>). This technique enables non-stream objects to have standard stream filters applied to them, reduces the size of files that have large numbers of small indirect objects and is especially useful for ''Tagged PDF''. Object streams do not support specifying an object's ''generation number'' (other than 0).
An index table, also called the cross-reference table, is located near the end of the file and gives the byte offset of each indirect object from the start of the file.<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''). Before PDF version 1.5, the table would always be in a special ASCII format, be marked with the <code>xref</code> keyword, and follow the main body composed of indirect objects. Version 1.5 introduced optional ''cross-reference streams'', which have the form of a standard stream object, possibly with filters applied. Such a stream may be used instead of the ASCII cross-reference table and contains the offsets and other information in binary format. The format is flexible in that it allows for integer width specification (using the <code>/W</code> array), so that for example, a document not exceeding 64 [[KiB]] in size may dedicate only 2
At the end of a PDF file is a footer containing
Line 130:
There are two layouts to the PDF files: non-linearized (not "optimized") and linearized ("optimized"). Non-linearized PDF files can be smaller than their linear counterparts, though they are slower to access because portions of the data required to assemble pages of the document are scattered throughout the PDF file. Linearized PDF files (also called "optimized" or "web optimized" PDF files) are constructed in a manner that enables them to be read in a Web browser plugin without waiting for the entire file to download, since all objects required for the first page to display are optimally organized at the start of the file.<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 Inc.|access-date=December 13, 2010|url-status=dead|archive-url=https://web.archive.org/web/20061115132507/https://www.adobe.com/devnet/pdf/pdf_reference.html|archive-date=November 15, 2006}}</ref> PDF files may be optimized using [[Adobe Acrobat]] software or [[QPDF]].
Page dimensions are not limited by the format itself. However, Adobe Acrobat imposes a limit of 15 million by 15 million inches, or 225 trillion in<sup>2</sup> (145,161 km<sup>2</sup>).<ref name="pdf-ref-1.7" />{{rp|1129}}
== Imaging model ==
Line 194:
== Additional features ==
=== Logical structure and accessibility<span class="anchor" id="Tagged PDF"></span> ===
{{See also|PDF/A-1|PDF/UA}}
A
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
An ISO-standardized subset of PDF specifically targeted at accessibility, [[PDF/UA]], was first published in 2012.
Line 307 ⟶ 308:
Many PDF viewers are provided free of charge from a variety of sources. Programs to manipulate and edit PDF files are available, usually for purchase.
There are many software options for creating PDFs, including the PDF printing capabilities built into [[macOS]], [[iOS]],<ref>{{Cite web|url=https://ijunkie.com/how-to-create-pdf-web-page-safari-iphone-ipad-ios-11/|title=How to Create a PDF from Web Page on iPhone and iPad in iOS 11|last=Pathak|first=Khamosh|date=October 7, 2017|website=iJunkie|access-date=January 12, 2023|archive-date=January 12, 2023|archive-url=https://web.archive.org/web/20230112153246/https://ijunkie.com/how-to-create-pdf-web-page-safari-iphone-ipad-ios-11/|url-status=live}}</ref> and most [[Linux]] distributions. Much document processing software including
The [[Free Software Foundation]]
The [[Apache PDFBox]] project of the [[Apache Software Foundation]] is an open source Java library, licensed under the [[Apache License]], for working with PDF documents.<ref>{{cite web|url=http://pdfbox.apache.org/|url-status=live|title=The Apache PDFBox project- Apache PDFBox 3.0.0 released|date=August 17, 2023|archive-date=January 7, 2023|archive-url=https://web.archive.org/web/20230107234923/https://pdfbox.apache.org/}} Updated for new releases.</ref>
Line 317 ⟶ 318:
[[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 [[rasterization]]. 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|publisher=Adobe Systems Inc.|access-date=August 20, 2014|archive-date=August 22, 2013|archive-url=https://web.archive.org/web/20130822034446/http://www.adobe.com/products/pdfprintengine/overview.html|url-status=live}}</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|access-date=November 26, 2010|archive-date=March 5, 2016|archive-url=https://web.archive.org/web/20160305090728/http://globalgraphics.com/products/jaws_rip|url-status=dead}}</ref> and the [[Harlequin RIP]] from [[Global Graphics]].
In 1993, the Jaws raster image processor from Global Graphics became the first shipping prepress RIP that interpreted PDF natively without conversion to another format. The company released an upgrade to
[[Agfa-Gevaert]] introduced and shipped Apogee, the first prepress workflow system based on PDF, in 1997.
|