What's new in PDFlib 10?

What's new in PDFlib/PDFlib+PDI/PPS 10.0?

The following provides an overview of the most important new or improved features in PDFlib/PDFlib+PDI/PPS 10.0 and Block Plugin 6.0. There are many more new features; see PDFlib 10.0 Tutorial and the PDFlib 10.0 API Reference for details.

Color Fonts and Emoji

OpenType color fonts allow glyph descriptions with color and transparency. They are especially popular for emoji fonts. PDFlib supports color fonts based on SVG or Microsoft COLR glyphs along with OpenType features, variation selectors and emoji variation sequences, e.g. for changing skin color or gender of a particular emoji.

Import Form Fields and Annotations with PDFlib+PDI

PDFlib+PDI traditionally imported only the page contents, but ignored interactive elements. Links and other annotation types, form fields, actions and JavaScript are imported along with the page contents to ensure that interactive documents retain their functionality. Interactive elements remain functional even if the imported pages are placed in different order or if multiple imported pages are placed on the same output page. Annotation rectangles are transformed appropriately if the page containing the annotation has been scaled or rotated. Annotation and form field import are compatible with PDF/A, PDF/UA and PDF/X.

Annotations

Creation of all types of annotations (comments) has been overhauled, extended and simplified. Annotation appearance streams are created automatically; annotations are supported in PDF/A mode as far as allowed by the standard.

Form filling

Imported form fields can be filled, e.g. to populate text fields. The contents and visual appearance (color, border etc.) of imported form fields can be modified or kept in the original state.

Multimedia

Video and sound files can be used in PDF with Screen annotations and Rendition actions. These are more powerful than Sound and Movie annotations and don’t require the deprecated Flash technology which is no longer supported in PDFlib 10 nor Acrobat DC.

Support for PDF 2.0

PDFlib supports new features in PDF 2.0 according to ISO 32000-2:2017 and the dated revision ISO 32000-2:2020. This includes new structure element types and nesting rules for Tagged PDF, graphical features, encryption, interactive elements, document and page-level output intents and many other areas. PDFlib+PDI and PPS process PDF 2.0 documents as well. Features marked as deprecated in PDF 2.0 are also deprecated or removed in PDFlib.

Color Management

The industry-standard sRGB ICC profile is automatically applied to RGB images which don’t include an embedded ICC profile. This facilitates faithful color reproduction and use of RGB images in PDF/A or PDF/X documents. Faithful color reproduction of imported PDF pages and SVG graphics with transparency has been simplified by automatic creation of transparency groups.

Optimized PDF Output

ICC profiles and other objects in PDF are cached and duplicates are detected. In combination with optimized content streams with fewer operators this results in significant PDF file size reductions. Large PDF documents beyond 10 GB can be created in combination with optimization and linearization.

SVG Import

Several details of SVG processing have been improved including certain CSS directives. Remote resources, e.g. fonts and images, can be fetched over the network.

Font Support and Text Handling

Enhancements in addition to color font support:

  • Fonts in WOFF2 format can be used.
  • Improved support for OpenType layout features.
  • Improved Type 3 font creation.

Convenience Features

Many existing API methods have been enhanced with convenience options and simplified procedures for common tasks. For example, graphics state properties can be supplied directly via options to many API methods without the need for creating and applying a gstate object. Path objects can be drawn inside a matchbox which has been created earlier, e.g. via Textflow or Table formatting. The default PDF output compatibility is PDF 1.7 Extension Level 8, the file format of Acrobat X/XI/DC.

Updated Pantone® Color Libraries

The integrated Pantone spot color database has been extended to cover the latest additions to the Solid Coated and Solid Uncoated color libraries. Spot colors which are no longer supported by Pantone, Inc. have been removed, e.g. the hexachrome color library.

pCOS Interface

The pCOS interface (which is included in PDFlib+PDI and PPS) supports additional pseudo objects for querying PDF details, e.g. new PDF standards, form fields, signatures and ICC profiles.

Tagged PDF and PDF/UA

Automatic Table tagging tags tables which span multiple pages correctly with a single Table element. Links spanning multiple lines are created as a single Link annotation with multiple rectangles. Structure element tags can be supplied inline in Textflow along with formatting options.

PDF 2.0 introduces a strict model for the relationship of structure elements. PDFlib supports new PDF 2.0 structure types and attributes and enforces the new structure element nesting rules. Tag namespaces (tagsets) and structure destinations are supported.

Untagged documents can be imported into PDF/UA as Artifact which simplifies handling of existing decorative content which is not available as PDF/UA.

PDFlib Personalization Server (PPS) and Block Plugin

The PDFlib Block Plugin for Acrobat received various usability improvements including a filter for temporarily reducing the number of visible Blocks for screen and Preview. Blocks can easily be moved by small or large amounts. Additional Block properties support all graphics state options including overprint settings. Structure elements (tags) are available as Block property and Preview supports PDF/UA cloning.

Networking

Remote resources can be fetched from the network with a new PDFlib API method, i.e. independently of the means provided by the environment. SVG processing automatically retrieves remote resources such as fonts or images.

Language Bindings

All language bindings have been updated to the latest versions. The Perl, PHP and Ruby bindings are UTF-8-enabled by default. The C++ binding supports the Unicode string types u8string/u16string/u32string introduced with C++11 and C++20.

Miscellaneous Improvements

New features in various areas:

  • Type 3 fonts may contain a mixture of colorized and non-colorized glyphs.
  • Additional appearance options for path objects.

Modernized Code base and Code Security

The code has been reviewed and improved for robustness; unnecessary code has been removed, e.g. workarounds for outdated versions of Acrobat and RIPs. Removal of deprecated features also resulted in smaller and cleaner code. Third-party libraries used in PDFlib have been updated to the latest versions to take advantage of security improvements and vulnerability protection.