Extension dictionaries were first introduced in ISO 32000-1:2008 for PDF 1.7, and were expanded in ISO 32000-2 for PDF 2.0. Their intent is to facilitate documentation of extensions to the core PDF specification in PDF files so that other developers may detect and report these extensions in their products.
This repository contains a JSON definition and associated JSON schema for publicly documented PDF extensions defined using PDF developer extension dictionaries, as defined in ISO 32000, subclause 7.12 (specifically Table 49). The JSON data also includes information to locate the public documentation. This JSON data is used to generate the PDF Association's PDF Extensions web page.
The JSON strings match the Developer Extension dictionary keys as defined by the relevant extension specification and provide standardized US English text for identifying PDF extensions.
These strings are intended to assist developers and stakeholders in providing consistent reporting of implementations and/or features contained within PDF files (regardless of whether the extensions are supported or not).
Extensions published by ISO (with the "ISO_" developer prefix) that have achieved DIS stage or later (and are thus public) will be included. Note that dated revisions of extensions defined by ISO may result in near-duplicate entries only differentiated by the ExtensionRevision entries. This is entirely intentional since withdrawal of an ISO document does not invalidate existing PDF files that utilize extensions developed against older specifications. Thus, it is not anticipated that JSON entries for specific ISO extensions will ever be removed.
If you wish to add a PDF extension to this JSON data, please submit a new Issue in this repository. We will only publish publicly documented extension information using publicly registered developer prefixes to encourage interoperability.
This informative resource is freely provided to all interested PDF developers, end-users, and stakeholders. This repository is overseen by the PDF Association's PDF Technical Working Group.
The PDF Association has published several articles explaining why simple PDF version numbers are no longer sufficient and the importance of communicating PDF extension information to users:
- "PDF Versions"
- "Don’t risk losing users’ trust: future-proof your PDF implementations"
- "How to get started with PDF 2.0"
- "PDF 2.0 modernizes cryptographic support"
This repo also contains a JSON schema useful in validating the JSON data (e.g., using the Python CLI check-jsonschema):
$ check-jsonschema --schemafile .\extensions\pdf-extensions.schema.json .\extensions\pdf-extensions.json
ok -- validation done
Information in this repository does not reflect an endorsement of any organization, implementation, or website. Any trade names used are given for the convenience of users and does not constitute an endorsement.
Vendors own their respective copyrights and trademarks wherever they are mentioned. Attention is drawn to the possibility that some information related to this repository may be the subject of patent rights. The PDF Association shall not be held responsible for identifying any or all such patent rights. Users of information in this repository are responsible for independently verifying any and all information. Any mention of companies or products does not imply endorsement or support of any of the mentioned information, services, products, or providers.