What’s New
PDFix Desktop Changelog
PDFix SDK Changelog

PDFix Desktop Changelog
[2.5.5] – 2026-04-29
Summary
This release focuses on a more practical application workspace, stronger external tagging workflows, and more flexible action execution directly in Document View.
- Improved usability and file handling in the Application Dashboard, including validation, preview, folder drag-and-drop, and clearer handling of opened files.
- Added and improved external actions for document tagging and tagging template creation, including Docling-based AutoTag and Create Layout Template workflows.
- Expanded custom action composition in Document View, including support for external actions, improved setup dialogs, and output handling into new tabs.
User Interface
- Added validation preview in Application Dashboard
- Added support for dragging and dropping folders into a tab
- Added the Action pane and improved the action execution pane in Document View
Accessibility and Tagging
- Added Add Child Tag action
- Added Move Tag action
- Added Move Up, Move Down, Level Up, Expand All, Collapse All, and Merge actions
- Added Alternate and Actual Text fields in Content pane
- Enabled artifact actions when tags are selected
- Added Split Content action
- Added Set List Numbering action
- Added automated fixes for validation errors
- Fixed link creation errors
- Fixed image tagging in Form XObject substructures
Actions and Workflows
- Added Action pane in Document View
- Improved Action setup dialogs
- Added an option to save outputs into a new tab
- Added support for external actions in Document View
- Improved Custom Action editor ordering
- Added support for copying and pasting actions as JSON
- Improved batch progress and cancellation updates
- Added notifications for new action packages
External Actions
- Improved Create Layout Template (Docling) and AutoTag (Docling) actions to support lists, complex tables, and element parenting
- Added a new external AutoTag (PDFix) action that uses layout templates and ensures backward compatibility by using the appropriate PDFix SDK version
Validation and veraPDF
- Added Validation view in Application Dashboard
- Added veraPDF check highlighting in Preview
- Improved validation issue reporting
- Improved validation/layout integration
- Improved PAC and clause view switching
Templates and Layout Recognition
- Improved Template pane loading
- Added template aliases
- Improved disabled template item behavior
Performance and Stability
- Performance and stability improvements
- Threading and batch cancellation improvements
PDFix SDK Changelog
[8.8.0] – 2026-04-29
Accessibility
- Added support for setting Alt, Actual Text, Lang, Extension, and Title properties on structure elements through layout templates and element property update functions
- Added and improved Fix Parent Tree, Fix Table Tag, Fix List, Set List Numbering, Move Tags, Split Content, Delete Tags, and Make Accessible workflows
- Added support for tagging initial elements only and improved parenting of initial elements and containers
- Added support for artifacting untagged content and improved removal of empty content marks after MCID cleanup
- Improved list recognition, ordered list detection, label validation, label updates, and combined label flag handling
- Improved heading level detection based on font properties
- Improved continuous paragraph, list, and table handling
- Improved reading order and content order in paragraphs, table headers, table cells, and split text
- Improved auto-tagging of background words, subscript and superscript text, and text spans with layout-specific edge cases
- Fixed Add Tags support for embedded templates
- Fixed Remove Tags and Remove Labels behavior and performance on larger documents
- Fixed Element Properties Update not applying Alt Text or Actual Text
- Fixed Alternate Text and Actual Text Unicode encoding issues
- Fixed Delete Tags crashes and Fix Parent Tree issues
- Fixed Split Content duplication and Split Pages issues
- Fixed Autotag hangs with substructure XObjects
Actions
- Added Fix Table action
- Added Split Content action
- Added Fix Metadata and Reset Metadata actions
- Added Fix Fonts action, which replaces Embed Fonts and Add Missing Unicode with new options
- Added Move Tags action
- Added Set Title action option to use the document title from the Info dictionary
- Added support for running combined external and base custom actions directly from the SDK
- Added support for embedding external custom actions into the SDK, including APIs to save and enumerate custom actions
- Added support for external actions in
PsCommand - Added Fix Headings parameter Assign heading levels to regenerate H1–H6 from font style and leading numbering
- Updated Set Annotation Contents action to use previous, next, and parent tag text for annotation content
- Updated Create Bookmarks action to correctly remove existing bookmarks when overwrite is enabled
- Fixed Set Annotation Contents action for widget annotations with empty or missing TU values
- Fixed Remove Annotation Properties action for widget annotations
- Fixed Set Title action when deriving the title from the file name
External Actions
- Improved Create Layout Template (Docling) and AutoTag (Docling) action to support List, complex Tables, and element parenting
- Added a new external AutoTag (PDFix) action that utilizes layout templates and ensures backward compatibility by using the appropriate PDFix SDK version
PdfDocTemplate
- Added
element_nestfunction to layout templates - Added
element_prop_detectfunction to set element properties - Added
has_annotandis_standard_tagsupport for structure element and template processing - Added title support for structure elements in layout templates
- Added template support for Alt, Actual Text, Lang, and Extension properties
- Fixed regular expression matching for empty strings in layout templates
- Fixed UTF-8 to PDF string conversion from JSON templates
- Fixed table detection crashes caused by invalid templates
- Fixed alternate text encoding from templates
- Improved text insertion, text-in-place handling, line sorting, baseline checks, and text run bounding box recalculation
Annotations
- Fixed annotation rectangles for initial elements
- Fixed widget annotation TU handling in Set Annotation Contents
- Fixed removal of annotation properties for widget annotations
Metadata and Document Information
- Added
PdfObjectInfoandPdfDoc.AcquireObjectInfo(string)for veraPDF-style object identification - Added Export Bookmarks to JSON
- Fixed saving PDF version 2.0 documents so they are not incorrectly saved as PDF version 1.0
Fonts
- Added Fix Font support for
.notdefglyph compliance issue (clause 7.21.8) - Improved font name comparison in the knowledge base
- Fixed preflight issues with font names containing unsupported characters
Command-Line and Pipeline
- Refactored CLI batch command output handling for JSON output to file or stderr
- Fixed CLI batch command exit codes on exceptions
- Fixed forwarding of subprocess stdout and stderr in
pdfix_app batch
WebAssembly
- Enabled WASM memory growth with
-s ALLOW_MEMORY_GROWTH=1
SDK, API
- Added
PdfObjectInfo– New object for parsed information about a PDF object identified by a string path, intended for resolving validator paths such as veraPDF object references. - Added
PdfDoc::AcquireObjectInfo(const wchar_t* path)– AcquiresPdfObjectInfofor a validator-style object path so callers can resolve page, annotation, content, MCID, object-id, and bounding-box information. - Added
PdsStructElement::HasContent()– Checks whether the structure element is connected with page content through MCID/MCR. - Added
PdsStructElement::HasAnnot()– Checks whether the structure element contains an annotation reference, OBJR, directly or indirectly. - Added
PsCommand::SaveActionsToStream(PsStream* stream, PsDataFormat format, PdfSaveFlags flags)– Serializes all built-in PDFix action definitions to a stream for discovering actions, parameters, and options. - Added
PsCommand::GetNumCustomActions()– Returns the number of embedded custom action presets distributed with the SDK. - Added
PsCommand::SaveCustomActionToStream(int index, PsStream* stream, PsDataFormat format, PdfSaveFlags flags)– Serializes one embedded custom action preset to a stream for inspection or execution throughPsCommand. - Added
Pdfix::GetCommand()– Creates aPsCommandobject, or returns null if creation fails. - Added
PdfObjectInfo::GetType()– Returns the parsed object reference type. - Added
PdfObjectInfo::GetPageNum()– Returns the zero-based page index for a page-specific object path, or-1when no page is associated. - Added
PdfObjectInfo::GetCount()– Returns the number of parsed path entries. - Added
PdfObjectInfo::GetBBox(int index, PdfRect* bbox)– Returns the bounding box associated with a parsed path entry, if available. - Added
PdfObjectInfo::GetAnnotIndex(int index)– Returns the zero-based annotation index for a parsed entry. - Added
PdfObjectInfo::GetContentStreamId(int index)– Returns the content stream identifier for a parsed entry. - Added
PdfObjectInfo::GetContentId(int index)– Returns the content identifier for a parsed entry. - Added
PdfObjectInfo::GetNumContentItemIds(int index)– Returns the number of nested content item identifiers for a parsed entry. - Added
PdfObjectInfo::GetContentItemId(int index, int index2)– Returns one nested content item identifier from a parsed entry. - Added
PdfObjectInfo::GetOperatorId(int index)– Returns the content operator identifier for a parsed entry. - Added
PdfObjectInfo::GetMcid(int index)– Returns the MCID associated with a parsed entry. - Added
PdfObjectInfo::GetObjectIdCount()– Returns the number of COS object identifiers referenced by the parsed path. - Added
PdfObjectInfo::GetObjectId(int index)– Returns one COS object identifier extracted from the parsed path. - Added
PdfObjectInfo::Release()– Releases thePdfObjectInfoobject and returns the remaining reference count. - Modified
PdeList– Changed inheritance fromPdeElementtoPdeContainer, exposing list elements as containers. - Modified
PdsStructElement::SetActualText(const wchar_t* text)– Parameter name changed fromalttotext; the function still sets the ActualText value for the structure element. - Modified
PdsStructElement::RecognizeTable()– Return type changed frombooltoPdsStructTableError, allowing callers to inspect detailed table recognition errors. - Modified
PsAccountAuthorization::Authorize(const wchar_t* license_name, const wchar_t* license_key)– Parameter names changed fromemailandserial_numberto license name/key terminology. - Added
PdfContainerType::kPdeContainerList– Adds list container type. - Added
PdfElementFlags::kElemNone– Adds explicit no-flag value. - Added
PdfElementFlags::kElemNoNesting– Adds a flag that prevents nesting. - Added
PdfLabelType::kLabelList– Adds explicit list-label value. - Added
PdfLabelType::kLabelLevel5– Adds list label level 5. - Added
PdfLabelType::kLabelLevel6– Adds list label level 6. - Added
PdfObjectInfoType– Adds object identification types used byPdfObjectInfo, including document, metadata, structure tree, structure element, bookmark, font, annotation, content, content item, and XObject. - Modified
PdfLabelType::kLabel– Meaning changed to marked as label but do not create lists. - Modified
PdfTextStyle– Replaced separatekTextH7andkTextH8heading styles with generickTextH. - Modified
PdsStructTableError– Reworked table errors to report invalid span, invalid tag type, and missing table headers. - Modified
PdfCellParams– AddedPdsStructTableError error, initialized tokTableErrorNone. - Removed
PsCommandType– Removed typed command/action group enum for base, make accessible, autofix, and quickfix command exports. - Removed
PsCommand::SaveCommandsToStream(PsCommandType type, PsStream* stream, PsDataFormat format, PdfSaveFlags flags)– Removed typed command export API; replaced bySaveActionsToStream(),GetNumCustomActions(), andSaveCustomActionToStream(). - Removed
PdfTextStyle::kTextH7– Removed H7 heading style value; replaced by generickTextH. - Removed
PdfTextStyle::kTextH8– Removed H8 heading style value; replaced by generickTextH. - Removed
PdsStructTableError::kTableErrorNoRow– Removed missing-row table error value. - Removed
PdsStructTableError::kTableErrorRowSpan– Removed rowspan-specific table error value; replaced by generic span error handling. - Removed
PdsStructTableError::kTableErrorColSpan– Removed colspan-specific table error value; replaced by generic span error handling.
General Updates
- Improved logging support
- Fixed C# marshaling of
const char*return values asIntPtr - Performance, stability, memory management
Releases
- PDFix-US Is Now Live: Automated PDF Accessibility for U.S. Government, Education & Enterprise
For nearly a decade, PDFix has helped organizations move beyond manual, page-by-page remediation toward automation that scales. Today we’re bringing that capability home to American customers… The U.S. accessibility market just got a dedicated home for one of Europe’s most-used PDF automation platforms. PDFix has formally launched PDFix-US, its exclusive American distributor, alongside the release of PDFix SDK… Read more: PDFix-US Is Now Live: Automated PDF Accessibility for U.S. Government, Education & Enterprise - PDFix Desktop 3.0 & SDK 9.0: Validate and Fix Entire PDF Batches in One Click
PDFix Desktop 3.0 and SDK 9.0 ship one of the biggest accessibility upgrades – batch validation of entire folders in a single app dashboard, along with the ability to fix validation errors in the same window, AI auto-tagging, accessibility actions, and deep veraPDF integration. PDFix Desktop · 3.0 Batch validation, one window Drop a folder. Validate every PDF… Read more: PDFix Desktop 3.0 & SDK 9.0: Validate and Fix Entire PDF Batches in One Click - Automate PDF/UA Font Repair: New Docker Actions from PDFix
February 2026 Quick Answer Manual font remediation is the silent killer of PDF accessibility workflows. Whether it’s missing Unicode mappings or broken CID tables, fixing fonts one by one doesn’t scale. PDFix has just released two new Docker-based External Actions that automate the entire font repair process. From OCR-powered Unicode recovery to Callas-driven structure fixes, you can now… Read more: Automate PDF/UA Font Repair: New Docker Actions from PDFix - PDFix Desktop 2.5 Released – Smoother Tagging and Smarter Navigation
The latest PDFix Desktop 2.5 releases deliver a series of refinements focused on accessibility, usability, and performance. From smarter tag management to improved navigation and a polished interface, every update enhances how you prepare and verify accessible PDFs efficiently – all powered by the updated PDFix SDK 8.7. Launched on October 16, 2025 – let’s see what’s new!… Read more: PDFix Desktop 2.5 Released – Smoother Tagging and Smarter Navigation - New AI-Driven PDFix SDK Release – Faster PDF Accessibility Automation
Make every PDF accessible – automatically. The latest PDFix SDK 8.7.6. release brings a new wave of AI-powered automation for PDF accessibility, tagging, and metadata optimization. With improved layout intelligence, reading-order recognition, and enterprise-scale automation tools, this update helps organizations integrate accessibility directly into their document workflows – faster, smarter, and fully compliant with WCAG and PDF/UA standards.… Read more: New AI-Driven PDFix SDK Release – Faster PDF Accessibility Automation