PDF specifications for coders: Adobe or ISO?

user1824407 picture user1824407 · Jan 1, 2013 · Viewed 18.1k times · Source

I want to code an application that can read and decode a pdf document; now where I'm supposed to get the specs for this fileformat ? The PDF format is standardized from the ISO group but it's not clear to me where is the most reliable source for getting this kind of informations.

what is a good source to start with this file format ?

Answer

David van Driessche picture David van Driessche · Jan 2, 2013

You can actually use both sources you mentioned; the confusion is historical.

Adobe invented PDF and it invented the Acrobat product family to be used together with it. The different PDF versions were released together with major Acrobat versions (PDF 1.3 for example was released together with Acrobat 4).

Because of the adoption of the PDF format and because a number of ISO standards were written that actually depended on the proprietary PDF file format (not an easy thing for an ISO standard), Adobe decided to hand over the PDF format to ISO.

From that point on and until today there is an ISO committee responsible for editing the PDF specification and coming up with new versions. The ISO standard for PDF is ISO 32000.

Also, keep in mind that, depending on where you want to use PDF, a number of other ISO standards might be very useful or indispensable. Amongst the most commonly used are PDF/X (for exchange of PDF files in the publishing community) and PDF/A (for the creation of PDF files that need to be archived in long-term storage). These specifications reference a specific version of the PDF standard and add additional requirements and restrictions.

As far as the specification is concerned, you can get all documents from the ISO directly. However, for PDF itself you can also get it from Adobe and that document will be identical. Refer to the Adobe DevNet site on Acrobat:

http://www.adobe.com/devnet/acrobat.html

Just download the Acrobat SDK and that will give you the documentation as part of it.

Let me add a word of caution on "targeting the PDF specification" in code. I really, really, really advise you to more clearly specify exactly what your needs are for PDF (editing, generating, quality control (preflight)) and then look for or ask about an existing library that meets those needs or can be extended to meet your needs.

Writing something that supports "PDF" in general will be a daunting task. The PDF specification is large, intricate and full of... well... niceties. There be dragons!


Update:

Direct link to Adobe's PDF-1.7 specification document (first edition, free to download, is here:

The content of this document later became officially adopted as the ISO standard for general PDF, ISO 32000-1.

Note however, that there are a few differences to the PDF file available from ISO:

If you start developing PDF software, it is sufficient to have (free) PDF from above Adobe link around.