After 8 years in the making, PDF 2.0 has finally been released. From new annotations, to digital signatures, to generally making the specification clearer and more concise, there’s been a lot of changes and improvements since 1.7.
As there are too many changes to list in this 984-page behemoth, here is a brief overview of the ones I thought were most important:
With PDF 2.0 comes a newer, stronger version of the AES encryption algorithm, AES-256. All previous encryption methods have been deprecated. Furthermore, PDF 2.0 supports Unicode passwords too.
New annotation types have been introduced to support projections, rich media and 3D annotations. Rich media has replaced Movie and Sound annotations, providing a single framework for video / audio / 3D / animations / etc. You can even mix video and 3D, such as having a video as a texture on a 3D object…
New PDF data structures that support Geospatial coordinate systems (latitude / longitude / altitude), allowing PDF to be extensively used for maps and satellite imagery in both 2D and 3D.
Major enhancements to digital signature technology:
PAdES Compatibility has been added, bringing the capabilities of PDF up to EU and ETSI Digital Signature standards. Long term validation of signatures has also been introduced in the form of Document Security Store (DSS) and Document Time-Stamp (DTS) dictionaries, which replaces the now-deprecated SHA1.
Plus, a few honourable mentions:
- Unencrypted wrapper document
- Associated files
- Enhancements for print and rendering-related features
There has been some extensive rewriting / reorganising of large sections of the spec, including:
- Rendering (10.1 & 10.3)
- Accessibility support (14.9)
- Digital signatures (12.8)
- Metadata (14.3)
Finally, some features have been dropped. To name a few:
- XFA Forms
- Movie and sound content (replaced by Rich Media annotations)
- All encryption methods (except AES-256)
- Encryption of FDF files.
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.