Implementation Status

This page gives an overview of which features of the PDF 2.0 specification are implemented in HexaPDF. The PDF 2.0 specification is freely available courtesy of the PDF Association and corporate sponsors, see https://www.pdfa-inc.org/product/iso-32000-2-pdf-2-0-bundle-sponsored-access/.

In addition to the implemented parts of the specification, there also many work-arounds for dealing with damaged or invalid files.

PDF 2.0 Feature Status Comment
1 Scope   Just info
2 Normative references   A list of reference docs
3 Terms and definitions   A list of PDF related terms
4 Notation   Just info
5 Version designations   Just info
6 Conformance   Just info
7 Syntax    
7.1 General ☑ Just info
7.2 Lexical conventions ☑  
7.3 Objects ☑  
7.4 Filters    
7.4.1 General ☑  
7.4.2 ASCIIHexDecode filter ☑  
7.4.3 ASCII85Decode filter ☑  
7.4.4 LZWDecode and FlateDecode filters ☑ Parameter “EarlyChange” is not supported
7.4.5 RunLengthDecode filter ☑  
7.4.6 CCITTFaxDecode filter ☑ Implemented as pass-through
7.4.7 JBIG2Decode filter ☑ Implemented as pass-through
7.4.8 DCTDecode filter ☑ Implemented as pass-through
7.4.9 JPXDecode filter ☑ Implemented as pass-through
7.4.10 Crypt Filter ☐  
7.5 File Structure ☑  
7.6 Encryption    
7.6.1 General ☑ Just info
7.6.2 Application of encryption ☑ EFF is not supported
7.6.3 General encryption algorithm ☑  
7.6.4 Standard security handler ☑  
7.6.5 Public-key security handler ☐  
7.6.6 Crypt filters ☐ Don’t seem to be used much
7.6.7 Unencrypted wrapper document ☐  
7.7 Document structure ☑  
7.8 Content streams and resources ☑  
7.9 Common data structures ☑  
7.10 Functions ☐  
7.11 File specifications ☑  
7.12 Extensions dictionary ☐  
8 Graphics    
8.1 General ☑ Just info
8.2 Graphics objects ☑  
8.3 Coordinate systems ☑  
8.4 Graphics state ☑  
8.5 Path construction and painting ☑  
8.6 Colour spaces    
8.6.1 General ☑ Just info
8.6.2 Colour values ☑  
8.6.3 Colour space families ☑  
8.6.4 Device colour spaces ☑  
8.6.5 CIE-Based colour spaces ☐  
8.6.6 Special colour spaces ☐  
8.6.7 Overprint control ☑ Not applicable
8.6.8 Colour operators ☑  
8.7 Patterns ☐  
8.8 External objects ☑  
8.9 Images    
8.9.1 General ☑ Just info
8.9.2 Image parameters ☑  
8.9.3 Sample representation ☑  
8.9.4 Image coordinate system ☑  
8.9.5 Image dictionaries ☑  
8.9.6 Masked images ☐  
8.9.7 Inline images ☑ Only parsing
8.10 Form XObjects ☑  
8.11 Optional content ☑  
9 Text   No support for vertical writing
9.1 General ☑ Just info
9.2 Organization and use of fonts ☑  
9.3 Text state parameters and operators ☑  
9.4 Text objects ☑  
9.5 Introduction to Font Data Structures ☑  
9.6 Simple fonts    
9.6.1 General ☑ Just info
9.6.2 Type 1 fonts    
9.6.2.1 General ☑ Just info
9.6.2.2 Standard Type 1 fonts (standard 14 fonts) (PDF 1.0-1.7) ☑  
9.6.2.3 Multiple master fonts ☐  
9.6.3 TrueType fonts ☑  
9.6.4 Type 3 fonts ☐  
9.6.5 Character encoding ☑  
9.7 Composite fonts    
9.7.1 General ☑ Just info
9.7.2 CID-Keyed fonts overview ☑ Just info
9.7.3 CIDSystemInfo dictionaries ☑  
9.7.4 CIDFonts ☑ Partially
9.7.5 CMaps ☑ Partially
9.7.6 Type 0 font dictionaries ☑  
9.8 Font descriptors ☑  
9.9 Embedded font programs ☑ TrueType fonts only
9.10 Extraction of text content ☑ No CMap support for composite fonts
10 Rendering ☐ HexaPDF does not support rendering PDFs
11 Transparency    
11.1 General ☑ Just info
11.2 Overview of transparency ☑ Just info
11.3 Basic compositing computations ☑ Just info
11.4 Transparency groups ☑ Just info
11.5 Soft masks ☑ Just info
11.6 Specifying transparency in PDF    
11.6.1 General ☑ Just info
11.6.2 Specifying source and backdrop colours ☑ Just info
11.6.3 Specifying blending colour space and blend mode ☐  
11.6.4 Specifying shape and opacity    
11.6.4.1 General ☑ Just info
11.6.4.2 Object shape and opacity ☑ Just info
11.6.4.3 Mask shape and opacity ☐  
11.6.4.4 Constant shape and opacity ☑  
11.6.5 Specifying soft masks    
11.6.5.1 Soft-mask dictionaries ☐  
11.6.5.2 Soft-mask images ☐  
11.6.6 Transparency group XObjects ☐  
11.6.7 Patterns and transparency ☐  
11.7 Colour space and rendering issues ☐  
12 Interactive Features    
12.1 General ☑ Just info
12.2 Viewer Preferences ☑  
12.3 Document-Level Navigation    
12.3.1 General   Just info
12.3.2 Destinations ☑  
12.3.3 Document Outline ☑  
12.3.4 Thumbnail Images ☑  
12.3.5 Collections    
12.4 Page-Level Navigation    
12.4.1 General ☑ Just info
12.4.2 Page Labels ☑  
12.4.3 Articles    
12.4.4 Presentations    
12.5 Annotations    
12.5.1 General    
12.5.2 Annotation Dictionaries ☑  
12.5.3 Annotation Flags   Just manipulation, not used/respected yet
12.5.4 Border Styles ☑ Just for widgets
12.5.5 Appearance Streams ☑ Just for widgets
12.5.6 Annotation Types    
12.5.6.1 General ☑ Just info
12.5.6.4 Text Annotation ☑  
12.5.6.5 Link Annotation ☑  
12.5.6.19 Widget Annotation ☑  
12.6 Actions    
12.7 Interactive Forms    
12.7.1 General ☑ Just info
12.7.2 Interactive Form Dictionary ☑  
12.7.3 Field Dictionaries    
12.7.3.1 General ☑  
12.7.3.2 Field Names ☑  
12.7.3.3 Variable Text ☑  
12.7.3.4 Rich Text Strings    
12.7.4 Field Types    
12.7.4.1 General ☑ Just info
12.7.4.2 Button Fields ☑ No appearance generation for push buttons
12.7.4.3 Text Fields ☑  
12.7.4.4 Choice Fields ☑  
12.7.4.5 Signature Fields    
12.8 Digital Signatures    
12.8.1 General ☑ Just info
12.8.2 Transform Methods    
12.8.2.1 General ☑ Just info
12.8.2.2 DocMDP ☑  
12.8.3 Signature Interoperability    
12.8.3.1 General ☑ Just info
12.8.3.2 PKCS#1 Signatures ☑  
12.8.3.3 PKCS#7 Signatures as used in ISO 32000 ☑  
14 Document Interchange    
14.1 General ☑ Just info
14.2 Procedure Sets ☑  
14.3.3 Document Information Dictionary ☑  
14.4 File Identifiers ☑  
14.6 Marked Content ☑  
14.7 Logical Structure ☑  
14.11.2 Page Boundaries ☑