Foxit PDF SDK Changelog
Windows/Mac/Linux
Windows/Mac/Linux
Platform and Ecosystem
Programming Languages and Platforms
- Go Language Support: Added Go language support for Linux x32/x64 and macOS x64 platforms
⚠️ Note: OCR,Compliance and Preflight features are not supported in the current Go library. - Python Enhancements:
- Expanded Platform Support: Python library now supports Linux ARM architecture
- Improved Version Compatibility: Built with ABI3 interface to ensure compatibility with Python 3.11 and future micro versions
.NET Ecosystem
- Foxit.SDK.Dotnet NuGet Package: Added Linux Arm and macOS Arm64 architecture support
- .NET Core: Now supports Linux ARM architecture
- Strong Name Support: Applied to PDF Print Manager for both .NET Framework and .NET Core
Logging and Debugging
Enhanced Logging
- Stream-based Logging: New
SetLogFile()
method now supports stream callbacks - Log Flushing: New
FlushLog()
method for immediate log write-out
Security and Compliance Enhancements
- Enhanced Thread Safety:
- Document-level thread safety improvements
Library::Initialize()
adds optional parameterbool enable_js_xfa_threadsafety = false
for JavaScript and XFA thread safety
- New
Sanitize()
Method: Automatically detects and removes hidden or sensitive info RemoveHiddenInfo()
Method: Allows selective cleanup of metadata, scripts, etc.EnableHandleTransparency()
Method: Removes transparency during PDF/A conversion for compliance
Graphics and Rendering Enhancements
Graphics Objects
- New Object Types:
e_TypeInlines
: Correct rendering of small inline images (e.g., stamps/logos)e_TypeEmptyMarkedContent
: Preserves tag structure of empty content
Rendering Control
SetScreenDPIScale()
for high-DPI scaling of notesSetRenderLayer()
to control which layers are renderedClearClips()
to reset clipping regions- Transparency support in
StartRenderBitmap()
- New
ContentFlag
enum values for highlight-only rendering
Color and Display
SetForegroundColor()
andSetForegroundColorMode()
for text/path color control- Support for WebP image format (
ImageType.e_WEBP
) ConvertToMono()
supports conversion to 1-bit monochrome
PDF Object Management
CreateFromName()
andCreateFromNameW()
for named object creationPDFArray::AddReference()
to insert reference entriesCreateFromString()
enhanced to accept length parameter
Page and Content Management
Page Operations
PageBasicInfoArray
: Represents lightweight info for all pagesGetAllPageBasicInfo()
: Bulk retrieval of page basics
Extraction and Insertion
- New enums:
e_ExtractPagesOptionBookmark
forStartExtractPages()
e_InsertDocOptionBookmark
forInsertDocument()
InsertDocument()
now supports optionalbookmark_title
parameter
Font and Text Management
- Directional font sizing via
TextState::font_vertical_size
andfont_horizontal_size
Font(StreamCallback* stream)
constructor now supports font stream inputSplitTextsInRectangle()
allows character-level separation of text in specified areas
Signature Management
UnregisterSignatureCallback()
to restore default SDK signature handlerAddPagingSealSignature()
now includesto_check_permission
flag for permission validation
Layer Management
LayerNode::GetAnnots()
retrieves annotations per layerLayerTree::GetOCGsByPageIndex()
supports page-based OCG accessSetOCGStateAction
class added for batch visibility control
Forms and XFA
Form Recognition
StartRecognizeForm()
overload allows control over tooltip generation
XML/XFA Enhancements
GetXMLContent()
provides access to internal XFA XMLExportData()
supports stream-based outputDocProviderCallback::SetFocus()
addsre-layout
parameter for layout change notification
OCR and Conversion
OCR Enhancements
OCRConvertTo()
supports direct conversion to formats (DOCX, RTF, etc.)OCRCallback
class andSetOCRCallback()
method to monitor and terminate OCR jobsis_sequentially_process
parameter added to switch between sequential/parallel modes
HTML to PDF
to_hide_header
andto_hide_footer
control header/footer visibilityto_deny_local_file_access
enhances security during HTML conversion
Image and Document Optimizer
Image Optimizer
- JPEG 2000:
SetTileSize()
for tile control- New
e_ImageCompressQualityLossless
option
- ZIP compression via
e_ImageCompressZip
- More options for monochrome compression via
MonoImageSettings
Document Optimizer
OptimizeScannedPDF()
for scan-heavy file compressionComputeAuditSpace()
calculates optimization potential- Enhanced cleanup via new enums
SetSubsetAllEmFonts()
for unembedded font subsetting
Table Generator
GetNewPageBasicInfo()
callback added to retrieve rendered table height on new pages
Bug Fixes
PDF Rendering
- Fixed PDF/A1-b conversion verification failure caused by transparencies
- Fixed issue where flattening specific files causes blank pages
- Fixed issue where progressive rendering with step size 5000 causes missing content
- Fixed issue where certain files cannot be rendered
- Fixed issue where prepress preview shows incomplete text for specific documents
OCR and Conversion
- Fixed issue where PDF OCR conversion takes too long without output
- Fixed issue where OCR results show ghosting effect
- Fixed issue where OCR with auxiliary effect interface produces poor results and Word conversion fails
- Fixed issue where OCR requires Chinese character set on Linux even when OCR language doesn’t include Chinese
- Fixed issue where images are missing in HTML to PDF output file
- Fixed issue where
getGraphicsObjectPosition
returns 0 and transparency setting fails - Fixed issue where specific HTML content cannot be converted to PDF
- Fixed issue where HTML2PDF output is incorrect when source HTML has fixed header and footer
Forms and Annotations
- Fixed crash issue on
foxit::pdf::interform::Field::SetValue
after processing 30 pages - Fixed issue where created note location and displayed location are inconsistent for certain documents
- Fixed issue where generated typewriter annotations show red border after editing in editor
- Fixed issue where screen annotations show black border when
BorderInfo
is not set
Structure / Bookmark / Object Issues
- Fixed issue where value and unit of measure markups are not displayed after importing from XFDF created by Web SDK demo or Foxit PDF Editor
- Fixed issue where
AddText
with Arabic text doesn’t match expected rendering effect - Fixed issue where Type3 text object converted to image object shows blank content
- Fixed crash issue when filling special position forms in iOS
- Fixed issue where scanned documents with minimal path elements are incorrectly identified as non-scanned
- Fixed issue where
PDFPage
parsing returns empty for certain documents that work in WPS and Adobe
Optimization
- Improved
TextPage
constructor performance to match version 9.0 speed - Fixed issue where optimizer image compression progress rate only shows 0 or 100 percent
Security and Compliance
- Fixed issue where Chinese characters in certificate subject information appear garbled
- Fixed PDF/A1-b conversion verification failure caused by transparencies
API and Integration
- Fixed issue where
UpdateHeaderFooter
API only updates one header/footer and removes others - Fixed syntax errors in TypeScript declaration file of
@foxitsoftware/foxit-pdf-sdk-node
package - Fixed issue where text search and replace reports
"any unknown error occurs"
- Fixed issue where C#
bookMark.Title
ends with extra null character - Fixed issue where concurrent calls to C++
pdfprint
show parameter error
Cross-Platform Support
- Fixed crash issue when filling special position forms in iOS
- Fixed issue where
StartImportPages
imports blank pages - Fixed issue where
StartImportPages
never finishes for certain documents
PDF Conversion SDK 3.0
August 7, 2025
Migration Notes
When upgrading to v3.0, please note:
- Linux GCC minimum supported version changed from 4.9.4 to 5.4
- SDK Node.js Library Drops Support for Node.js v8 and v9
New Features & Enhancemnets
PDF2Office
Programming Language Enhancements
- Go Language Support:
- Added Go language support for Linux x32/x64 platform.
- Python Version Compatibility Improved:
- Built with the ABI3 interface, the Python library ensures compatibility with Python 3.11 and all future micro versions.
Improvements
- Enhanced text paragraph recognition, reducing text box output in PDF2Office
- Improved border table recognition in PDF2Office
- Improved conversion output stability and standardization in PDF2Office
- Improved nested table output appearance in PDF2Word
- Enhanced typical header/footer recognition capability in PDF2Word
- Improved heading recognition in PDF2Word
- Enhanced table output quality in PDF2Excel
Office2PDF
Linux Support
- Office2PDF now added Linux system platform support.
Improvements
- Optimized font loading method, improving conversion speed in Office2PDF
- Implemented multi-level nesting of drawing and paragraph elements in Word2PDF
- Added support for vertical paragraph alignment in drawing objects in Word2PDF
- Fixed multi-layer drawing overlay display issue in Word2PDF
- Added PowerPoint page-level navigation support in PPT2PDF
Live Demo
- Online conversion demo supports parameter configurations and selections
PDF2Office
Module | Key |
PDF to Word | enable_retain_page_layout |
PDF to Excel | workbook_settings |
Common Options | enable_ml_recognition |
Common Options | page_range |
Common Options | include_pdf_comments |
Common Options | include_images |
Office2PDF
Module | Key |
Word to PDF | is_generate_bookmark |
Excel to PDF | is_output_hidden_worksheets |
Excel to PDF | worksheet_names |
Common Options | is_embed_font |
Bug Fixes
PDF2Office
- Fixed issue where converted Word document content cannot be edited
- Fixed crash issue during stress testing of PDF2Word conversion with GSDK 10.0 Java Linux version
- Fixed issue where PDF2Word conversion process gets stuck without output
- Fixed issue where PDF2PPT conversion adds an extra gray background block
Office2PDF
- Fixed issue where complex Word layouts with nested drawing and paragraph elements are not properly converted
- Fixed issue where drawing objects with vertical paragraph alignment are not properly rendered
- Fixed issue where multiple layered drawing objects display incorrectly
- Fixed issue where PowerPoint page-level navigation is not supported
Web
July 2, 2025
Major Changes
Form Module Refactor
The form module (including Form scripting execution) has been completely refactored in version 11.0 to deliver faster rendering, native-like visual fidelity, and more robust API capabilities. These changes introduce breaking updates and are not backward-compatible with old versions.
Removed APIs
The following legacy form-related APIs have been removed and replaced with a new form architecture:
PDF.form.PDFControl
PDF.form.PDFField
PDF.form.PDFForm
PDFDoc.loadPDFForm
Impact
- API Changes: Any code relying on the removed interfaces must be updated to the new APIs.
- Rendering Behavior Change: Form fields are no longer rendered using separate DOM elements. They are now drawn directly by the PDF rendering engine.
- Form JavaScript Scripting Architecture Upgrade:
- Form JavaScript execution context has been migrated to
Web Worker
, ensuring the main thread security operations. - Core Form JavaScript APIs have been refactored to
C++/WebAssembly
implementation.
- Form JavaScript execution context has been migrated to
Replacement
- Use the following new form-related APIs:
PDF.form.PDFForm
PDF.form.PDFFormField
PDFViewCtrl.form.FormFillerService
addons.form_designer_addon
- Refer to the PDF Form API Migration Guide in the Developer Guide for complete migration details.
Signature Workflow Refactor
The signature and verification workflow for both standard AcroForm and dynamic XFA forms has been redesigned for improved usability and maintainability.
Deprecated APIs
PDFUI.registerSignatureFlowHandler
PDFUI.setVerifyHandler
Impact
These APIs remain available in version 11.0 for backward compatibility but will be removed in a future release. Please plan your migration accordingly.
Replacement
- Use the new signature workflow interfaces:
PDF.form.signatureService
PDF.form.SignatureWorkflowService
- Refer to the Signature Workflow API Migration Guide in the Developer Guide for full details and examples.
Action Module Refactor
Deprecated old action API system in favor of more efficient approaches.
Deprecated APIs
- PDF.actions.action
Impact
These APIs are still available in version 11.0 for backward compatibility but will be removed in a future release. If your application depends on these APIs, we strongly recommend migrating to the new API system now.
Replacement
- Refer to the
Upgrade Guide for Action APIs
in the Developer Guide for instructions on migrating to the new Action API system.
Legacy Bookmark API Cleanup
All legacy bookmark-related APIs deprecated in earlier versions have now been fully removed.
Impact
- Any applications still using the old bookmark APIs will no longer function correctly in version 11.0.
Replacement
- Refer to the Bookmark API Migration Guide in the Developer Guide for the proper migration path.
New Features & Enhancements
Form Enhancements
- New
form-designer-addon
plugin API module for controling and update field properties with real-time listeners. - New
FormFillerService
class for managing PDF form field filling, interactive behaviors, and design mode, including event handling and state control during interaction. - New API
pdfDoc.autoRecognitionForm({ isSetTooltip: true })
controls whether tooltips are set during auto-recognition.
Signature Enhancements
- New API
IViewerUI.getSignatureUI()
to customize the signature-related UI (e.g., signing, verification, and signature property UI). - New class
PDFViewCtrl.annotComponents.SignatureAnnot
to enable creating, signing, verifying, and handling interactions with signature fields. - New Class
SignatureWorkflowService
to control the signature workflow. - New class
SignatureService
to enable integration with backend systems or third-party services to perform custom signature verification logic. - New additional parameters to
pdfDoc.sign()
that includesFontName
,FontSize
,iconFontName
, andiconFontSize
. - New API
pdfsignature.getSignatureType()
to retrieve the signature type.
Action Enhancements
- GoToR Action Support:
- UI now supports creating
GoToR
actions. - New class:
RemoteGotoAction
for setting local file, destination, and open behavior.
- UI now supports creating
- Document-Level Actions:
- New APIs
PDFDoc.setOpenAction(action)
PDFDoc.removeOpenAction()
PDFDoc.getOpenAction()
- New APIs
- Annotation and Widget Action Management:
- New APIs:
Annot.getAllActionData()
Annot.updateAction()
Annot.removeAction()
Annot.appendAction()
Annot.supportsAction()
PDFFormPropertiesService.updateAction()
PDFFormPropertiesService.removeAction()
PDFFormPropertiesService.updateAdditionalAction()
PDFFormPropertiesService.appendAdditionalAction()
- New APIs:
- Additional Action Management:
- New class
actions.AdditionalAction<T>
supports managing additional actions triggered by annotations, widgets, or pages.
- New class
Annotation Enhancements
- Separate border and fill opacity:
MarkupAnnot.setBorderOpacity()
,getBorderOpacity()
MarkupAnnot.setFillOpacity()
,getFillOpacity()
- Support for WebP images in stamps
- Stamp icon caching via IndexedDB
- Support for custom URL protocols in link annotations
- New config property
AnnotComponentConfig.moveDirection
to control move direction
Text Editing Enhancements
page.splitTextInRect()
now supports splitting text at the character level.PageEditorAddon.changeTextColorByRect()
supports text color changes in a specified area.
Document Sanitization
- UI automatically detects and removes hidden/private information.
- New APIs:
PDFDoc.sanitize()
PDFDoc.removeHiddenData()
Viewer Preferences Support
- New class:
PDFViewPreference
- New APIs:
PDFDocsetOpenAction()
PDFDocgetOpenAction()
PDFDocremoveOpenAction()
PDFDocgetViewPreference()
PDF/A Enhancements
- Prompt added for enabling PDF/A editing in the UI
- New API:
PDFViewer.grantEditPDFAPermission(permission)
Font Access Control
- UI prompt added when accessing system fonts
- New API:
grantQueryLocalFontsPermission(permission)
Portfolio Accessibility Enhancements
- Improved keyboard navigation in Layout and Detail views: supports Home, End, Tab, Enter, and Arrow keys
- Better screen reader compatibility
File Download Progress
getFile()
now supports aprogressHandler
callback for real-time download tracking
New Examples
- github.com/foxitsoftware/foxit-CollaborationAddon-example – Vue3
- examples/UIExtension/form/custom-form-properties-editor/
- examples/UIExtension/form/custom-widget-contextmenu/
- examples/UIExtension/form/interaction-event-interceptor/
- examples/PDFViewCtrl/custom-date-time-picker/
Bug Fixes
Annotation-Related Fixes
- Fixed an issue where the eraser’s circular indicator did not scale according to the page zoom level.
- Fixed an issue where adding a Callout annotation in certain engineering drawings would cause the annotation position to shift after entering text.
- Fixed a problem that caused failure when adding a Callout annotation to the first page in specific documents.
- Fixed an issue where Checkmark icon marked by the SDK Viewer could not be displayed correctly in other PDF readers.
- Fixed a bug where FreeText annotations were not visible in the comment list for specific documents.
- Fixed an issue where multiple selected annotations in the comment list could not be deselected.
- Fixed a problem where drawing annotations could extend beyond page boundaries.
- Fixed a bug where the color selection in the drawing annotation palette failed or was not updated correctly after being changed via code.
- Fixed an issue where Typewriter annotation colors were lost after exporting to JSON and reimporting.
- Fixed an issue where FreeText annotations with font changes displayed abnormally after exporting to XFDF and reimporting.
- Fixed a problem where FreeText annotations display Icorrectly on some pages of specific documents.
- Fixed an issue where exporting FreeText annotations containing non-English characters using
exportAnnotsToFDF
caused the file size to increase significantly. - Fixed a bug where Circle Area measurement annotations did not respond to
page.setMeasureScaleRatio()
settings. - Fixed an issue where Distance measurement annotations displayed incorrect scale values.
- Fixed a rendering issue with Pencil drawings due to inaccurate unit conversion logic from PDF points to screen pixels.
- Fixed a console error that occurred when right-clicking annotation properties in specific documents.
- Fixed a bug where rightClickAnnotation events were not triggered for Link annotations.
- Fixed an issue where resizing Stamp annotations would not preserve their aspect ratio.
- Fixed a bug where adding custom Stamps using
PDFViewer::addAnnotationIcon
failed.
Page Display & Operation Fixes
- Fixed an issue where comparing specific engineering drawings with the SDK produced incorrect comparison results.
- Fixed a problem where extracted text using
getText
did not match the actual document content. - Fixed an issue where some text and image objects disappeared after applying a transformation matrix.
- Fixed a compatibility issue where using the SDK in the Electron framework triggered
nodePath.dirname is not a function error
. - Fixed a problem where PDF documents could not be loaded in Safari due to failed Service-Worker registration.
- Fixed a console error that occurred when opening certain PDF documents.
- Fixed a bug that caused PDF loading failure due to empty layer content.
- Fixed an issue where parsing failed when loading a document using
openPDFByHttpRangeRequest()
due to incorrect range parsing. - Fixed a bug where incorrect font encoding caused custom fonts configured via SDK not to display in other PDF readers.
- Fixed a problem where only the first font setting took effect when matching arbitrary fonts in the UI layer.
- Fixed a bug where incorrect Redaction region calculations caused the entire page to be redacted.
- Fixed an issue where calling
pdfViewer.rotateTo
did not update the view as expected. - Fixed a bug where the signature appearance failed to display due to Base Font Name retrieval failure in signed forms.
- Fixed an issue where the
FindNext
function caused a memory overflow when switching pages during a search. - Fixed a performance issue that reduced the first-page rendering time of linearized PDFs from ~60 seconds to just 1 second.
Permissions & JavaScript Execution Fixes
- Fixed a JavaScript form issue where focus events were not triggered properly, causing scripts to fail.
- Fixed an issue where improper handling of asynchronous JavaScript in PDF forms caused unexpected behaviors.
- Fixed a permissions issue where documents with editable text rights still prevented text modification.
- Fixed a bug where calling
setPagesBox
on a document without permission incorrectly prompted a permission error. - Fixed an issue where the
Search & Highlight
checkbox remained enabled even when the document lacked annotation permissions.
UI & Interaction Fixes
- Fixed an issue where
pdfUI.confirm()
parameters could not be customized. - Fixed a problem where the print preview was incorrect when printing from Chrome on iOS.
- Fixed a scrolling issue where PDF pages scrolled too quickly when using a Trackpad due to over-sensitive input.
- Fixed an issue where repeatedly resizing the left panel caused the document display area to go blank.
Updated on August 7, 2025