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 parameter bool 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 notes
  • SetRenderLayer() to control which layers are rendered
  • ClearClips() to reset clipping regions
  • Transparency support in StartRenderBitmap()
  • New ContentFlag enum values for highlight-only rendering

Color and Display

  • SetForegroundColor() and SetForegroundColorMode() for text/path color control
  • Support for WebP image format (ImageType.e_WEBP)
  • ConvertToMono() supports conversion to 1-bit monochrome

PDF Object Management

  • CreateFromName() and CreateFromNameW() for named object creation
  • PDFArray::AddReference() to insert reference entries
  • CreateFromString() enhanced to accept length parameter

Page and Content Management

Page Operations

  • PageBasicInfoArray: Represents lightweight info for all pages
  • GetAllPageBasicInfo(): Bulk retrieval of page basics

Extraction and Insertion

  • New enums:
    • e_ExtractPagesOptionBookmark for StartExtractPages()
    • e_InsertDocOptionBookmark for InsertDocument()
  • InsertDocument() now supports optional bookmark_title parameter

Font and Text Management

  • Directional font sizing via TextState::font_vertical_size and font_horizontal_size
  • Font(StreamCallback* stream) constructor now supports font stream input
  • SplitTextsInRectangle() allows character-level separation of text in specified areas

Signature Management

  • UnregisterSignatureCallback() to restore default SDK signature handler
  • AddPagingSealSignature() now includes to_check_permission flag for permission validation

Layer Management

  • LayerNode::GetAnnots() retrieves annotations per layer
  • LayerTree::GetOCGsByPageIndex() supports page-based OCG access
  • SetOCGStateAction 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 XML
  • ExportData() supports stream-based output
  • DocProviderCallback::SetFocus() adds re-layout parameter for layout change notification

OCR and Conversion

OCR Enhancements

  • OCRConvertTo() supports direct conversion to formats (DOCX, RTF, etc.)
  • OCRCallback class and SetOCRCallback() method to monitor and terminate OCR jobs
  • is_sequentially_process parameter added to switch between sequential/parallel modes

HTML to PDF

  • to_hide_header and to_hide_footer control header/footer visibility
  • to_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 compression
  • ComputeAuditSpace() 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

ModuleKey
PDF to Wordenable_retain_page_layout
PDF to Excelworkbook_settings
Common Optionsenable_ml_recognition
Common Optionspage_range
Common Optionsinclude_pdf_comments
Common Optionsinclude_images

Office2PDF

ModuleKey
Word to PDFis_generate_bookmark
Excel to PDFis_output_hidden_worksheets
Excel to PDFworksheet_names
Common Optionsis_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 renderingnative-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.

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 includes FontNameFontSizeiconFontName, and iconFontSize.
  • 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.
  • Document-Level Actions:
    • New APIs
      • PDFDoc.setOpenAction(action)
      • PDFDoc.removeOpenAction()
      • PDFDoc.getOpenAction()
  • 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()
  • Additional Action Management:
    • New class actions.AdditionalAction<T> supports managing additional actions triggered by annotations, widgets, or pages.

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 a progressHandler callback for real-time download tracking

New Examples


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