Capability Matrix
ZingPDF capabilities
Support matrix for the current API surface, companion packages, and product boundaries.
Document Core
Open, create, inspect, and restructure documents.
| Capability | Status | Notes |
|---|---|---|
| Load existing PDFs from seekable streams | Available | Load existing documents from seekable streams. |
| Create blank PDFs | Available | Includes page creation APIs. |
| Get page counts and retrieve pages | Available | Page count and page access APIs. |
| Read visible page geometry and map display coordinates | Available | Page.GetGeometryAsync(...) resolves crop and rotation values and converts between PDF bottom-left and display top-left points. |
| Render PDF pages to PNG | Available | Page.RenderAsync(...) and Pdf.RenderPageAsync(...) return PNG bytes plus pixel dimensions and page geometry. Rendering uses PDFium through PDFtoImage and SkiaSharp native assets. |
| Append, insert, and delete pages; merge pages | Available | Append, insert, delete, and merge operations. |
| Export selected pages; split documents | Available | Create a new PDF from selected page numbers or split a document into multiple PDFs. |
| Rotate pages | Available | Page-level and document-wide rotation. |
| Read and update document metadata | Available | Title, author, subject, keywords, creator, and dates. |
| Low-level PDF object access | Available | IPdf.Objects exposes the object collection and page tree for integrations that need syntax-level access. |
| Recover from some malformed file-structure defects | Available | Includes some broken startxref recovery and common xref-stream repair paths. Not a full repair engine. |
Document Creation
Create PDFs with native authoring APIs or template renderers.
| Capability | Status | Notes |
|---|---|---|
| Fluent authoring for new PDFs | Available | Pdf.New() covers pages, text, shapes, paths, images, watermarks, boxed layout, wrapping, and fonts. |
| Liquid HTML templates | Available | ZingPDF.Templates.LiquidHtml renders Liquid variables, loops, conditionals, and includes with Fluid, then converts the rendered HTML through ZingPDF.FromHTML. |
| HTML-to-PDF conversion | Available | ZingPDF.FromHTML converts rendered HTML through browser automation. |
| Fluent page editing for existing PDFs | Available | pdf.Pages(...) applies page-level fluent operations to existing documents. |
| Add text and image content | Available | Text and image placement through the page API. |
| Draw vector paths | Available | Path drawing with stroke and fill options through the page API. |
| Text watermarks | Available | Simple all-pages watermarking. |
| Extract text | Available | Text extraction API. |
| OCR for scanned or image-based pages | Available | ZingPDF.OCR adds OCR support for scanned and image-based pages, with configurable embedded-text preference. |
| Register standard PDF fonts | Available | Document-level registration API for the standard PDF text fonts. |
| Register embedded TrueType fonts | Available | Document-level registration API for local TrueType font files and streams. |
| Google Fonts package | Available | Package for registering Google Fonts through the Google Fonts Developer API. |
| PDF-native flow templates | Planned | The current template package is Liquid HTML backed by browser conversion, not a PDF-native flow layout engine. |
Forms
Inspect and update AcroForm content through typed field wrappers.
| Capability | Status | Notes |
|---|---|---|
| AcroForm field enumeration | Available | Typed wrappers for terminal fields. |
| Create AcroForms and fields | Available | Create forms with text, checkbox, radio, choice, and signature fields. |
| Inspect form field bounds | Available | Read full field rectangles for placement and layout. |
| Text field read/write | Available | Read, set, and clear text field values. |
| Choice, checkbox, and radio selection | Available | Selection APIs exposed through option wrappers. |
| Signature field discovery | Available | Signature fields can be identified and inspected. |
| Inspect signature metadata | Available | Read signature presence, filter, subfilter, signer name, reason, and signing time. |
| Validate signature integrity | Available | Checks PDF ByteRange values, detached CMS payloads, message digests, and CMS signatures. |
| Build signer certificate chains | Available | Uses .NET X509Chain with extra certificates or custom trusted roots supplied through validation options. |
| Sign existing or hidden signature fields | Available | Signs existing signature fields with a visible appearance that can include a signature image, or adds a hidden field for validation-only signing on unencrypted PDFs. |
| Visible and invisible signing workflows | Available | Supports visible field signing with a basic appearance, optional signature image, and hidden-field signing for cryptographic validation-only workflows. |
| Push-button caption and action inspection | Available | Read button captions, inspect primary action types, inspect URI or named actions, and list additional-action triggers. |
| Form reset | Planned | Planned API for restoring AcroForm fields to their default values. |
| Flatten filled AcroForms | Available | Place widget appearances onto the page and remove the interactive form structure. |
Security And Output
Protect documents, rewrite history, and control how output is saved.
| Capability | Status | Notes |
|---|---|---|
| Compress and decompress stream content | Available | Compression and decompression APIs for supported streams. |
| Performance tracing | Available | PerformanceTrace records named timing scopes for parser and document workflow diagnostics. |
| Authenticate encrypted PDFs | Available | Password authentication for encrypted files. |
| Apply password protection | Available | Supports Standard security handler RC4-128, AES-128, and AES-256 output, including user permission flags. |
| Restrict print, copy, edit, and form permissions | Available | User permission flags are exposed through the high-level encryption API. |
| Decrypt to a plain latest revision | Available | Removes encryption from the latest saved revision. |
| Incremental save | Available | Writes a new revision and preserves prior document history. |
| Document history removal | Available | Rewrites the document so only the latest live objects are saved, removing prior incremental revision history. |
| Structural text redaction with rewritten-file save behavior | Available | Marks exact extracted-text matches or explicit page regions, removes matched text, redacts intersecting vector paths and XObjects, draws overlays, and rewrites the document so earlier file history is not preserved. |
Packages And Roadmap
Package notes and planned features.
| Capability | Status | Notes |
|---|---|---|
| Cross-platform core library support | Available | Windows, Linux, and macOS, subject to runtime dependencies. |
| HTML-to-PDF package | Available | HTML-to-PDF package with browser automation requirements. |
| Liquid HTML template package | Available | ZingPDF.Templates.LiquidHtml renders Liquid templates with Fluid and converts the resulting HTML through ZingPDF.FromHTML. |
| OCR package | Available | OCR companion package for scanned or image-based PDFs using a pluggable engine model. |
| Full malformed-PDF repair and xref rebuild | Planned | Current recovery covers a few common defects. Full object-graph reconstruction is not implemented yet. |
| Sign password-protected input PDFs | Planned | Planned workflow: authenticate an encrypted input PDF, add a signature, and save signed output. Encrypting an already signed PDF is not a high-level workflow. |
| Trusted timestamps, LTV, and DocMDP validation | Planned | Signature validation reports these layers separately, but trusted timestamp tokens, DSS/VRI data, and DocMDP permissions are not validated yet. |
| Inline image and shading redaction | Planned | The current redaction API handles supported vector content, image XObjects, and form XObjects. Inline images and shading content are still rejected. |
| OCR-driven redaction for scanned pages | Planned | OCR result bounds for scanned or image-based pages are not exposed through the redaction API yet. |
| High-level annotation APIs | Planned | Review annotations and comment workflows are not exposed as a friendly high-level surface yet. |