Foxit PDF SDK Changelog

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 July 2, 2025