Skip to content

Foxit PDF SDK for Web 11.1.0

Release date: April 20, 2026

Summary

This release adds 17 capability improvements across bookmarks, text extraction, annotations, forms, signatures, 3D, measurement, and viewer integration, plus 60 customer-reported fixes. If you upgrade from 11.0, read the Breaking changes section on bookmarks below.

Breaking changes

Bookmarks — asynchronous destinations (incompatible change)

What changed

  • From 11.1.0, page, left, top, zoomMode, and zoomFactor on BookmarkData are deprecated. For large and linearized/fragment-loaded PDFs, initial bookmark tree nodes no longer embed full destination data.

Use instead

  • BookmarkDataService.getBookmarkDestination(bookmarkId) — async destination data (coordinates, zoom, related fields) for thumbnails, overlays, or custom scroll logic.
  • BookmarkDataService.performAction(bookmarkId) — runs the bookmark’s PDF action chain (GoTo, URI, JavaScript, etc.) like the built-in bookmark panel; for standard navigation you do not need getBookmarkDestination before performAction.
  • Prefer page object numbers over fragile pageIndex when associating bookmarks with pages.

New features and enhancements

Page text and advanced editing

  • PDFPage: getText, getCharCount, getCharInfoByIndex, getCharRange for character-index integrations (proofreading, annotation anchors, automation with search APIs).
  • PDFPage.addRichText: programmatic rich text on the page (requires AdvEdit license).

Annotations and forms

  • PDFViewer.setMultipleSelectionEnabled / isMultipleSelectionEnabled: marquee multi-select, Ctrl/Shift multi-select, Ctrl+A / Cmd+A for annotations and widgets.
  • PDFPage.setAnnotGroup and MarkupAnnot.ungroup: group/ungroup without new PDF objects; stable objNumber and name; listen for AnnotUpdatedType.groupUpdated on annotationUpdated.
  • enableRealtimeAnnotShapeUpdate: optional live Callout shape updates while dragging/resizing; set via PDFViewer constructor and/or pdfViewer.config.enableRealtimeAnnotShapeUpdate.
  • AnnotComponentConfig.enableDiagonally: diagonal resize handle for Callout in the config callback.
  • FreeText: editing closer to Foxit PDF Editor (desktop) for mixed scripts and layout.
  • Form buttons: Select icon dialog to browse, preview, and clear button images (JPEG, PNG, GIF, BMP).

Signatures and stamps

  • Quick sign (Protect menu): PSI-style pressure simulation on the page alongside the classic Sign PDF dialog.
  • Signature UI: clear signature from context menu; Sign and CertifyPlace signature in Protect; PDFDoc.sign extended with isKeepRatio and custom bitmap overlay.
  • Custom dynamic stamps: UI and API (CustomDynamicStamp / setDynamicStamp, field as object or array) for multi-segment labels.

3D and measurement

  • 3D PDF: sidebar model tree (part visibility) and view list with preset cameras for design review.
  • CreateMeasurementService (pdfViewer.getCreateMeasurementService()): programmatic measurement creation (annotations, labels, result panel, snap mode, scale, etc.)—replaces ad hoc DOM coupling to the measurement sidebar.

Host integration

  • PDFViewer constructor: customs.containerRoot (HTMLElement) to scope styles without iframe (works with Shadow DOM and similar).
  • Stable component-name attributes on annotation menus and related components for predictable getComponentByName customization.

Performance

  • Bookmarks: async getBookmarkDestination and a leaner initial tree reduce upfront parsing when opening or expanding the bookmark panel—especially for large linearized docs and openPDFByHttpRangeRequest.
  • Rendering: pipeline optimizations—up to 39% faster zoom interaction and up to 34% faster annotation/form page turns.

Bug fixes

Rendering

  • page.render black background in SDK 11 vs white in 10.x.
  • [Performance] Engine errors mid-batch page.render conversion.
  • [Performance] Large drawings: mobile OOM/crash; desktop memory and stutter.
  • Annotation/control frame drift during zoom.
  • Two-finger zoom page shift on phones after release.
  • [Performance] Safari scroll jank, sidebar hurting first paint/navigation, non-passive wheel warnings.
  • [Performance] Stamp flicker during zoom.
  • [Performance] Scroll speed after view rotation on large documents.

Document and pages

  • Blank UI or corrupt file after loadPDFDocByHttpRangeRequest then fragmented openPDFByHttpRangeRequest.
  • Collaboration: annotations missing for other users after first user closes the collab page on the same session URL.
  • [Performance] Slow getEmbeddedFile for large attachments; crash on huge attachments.
  • Virtual blank second page and Unknown engine error on first-page interaction for some range-loaded PDFs.

Text and content

  • compareDocuments losing summary/title text for Vietnamese (vi-VN) output PDFs.
  • PDFDoc.searchText regex search failing on very large page counts.
  • Japanese IME full-width parentheses breaking selection in advanced edit mode.
  • Redact-by-search offset after alternating search and manual redact marking.

Forms and XFA

  • “Create multiple copies” row/column counts inverted vs 10.x and desktop Editor.
  • Dynamic XFA XML export/import not writing field values back.
  • Hand tool still firing activeAnnotation on widget click.
  • GDOR tax sample: help dialog memory error, Tab changing pages, date panel not collapsing.

Annotations — interaction, display, permissions

  • Callout placement on left side, leader/text box collapse when creating in series.
  • Line height / last line mismatch with custom mapped fonts after blur.
  • FreeText width shrinking at high zoom when page exceeds viewport.
  • No vertical scroll after switching from single-page to multi-page on mobile.
  • Typewriter input across pages without ending edit—missing entries in annotation list.
  • setDefaultAnnotConfig ineffective for Note defaults.
  • Oversized default Callout rect; leader start not at cursor.
  • Runtime error hovering annotations (reload/console-related paths).
  • Align/distribute/size menus moving annotations with delete-only permission.
  • Fewer annotations loaded than Adobe in some docs with getAnnots errors.
  • Measurement annotations still allowing geometry (rect) changes by default.
  • Stamp on rotated page then dragged to normal page appears squashed.
  • Area highlight not stacking above TextBox/Callout like desktop Editor.
  • Ruler unit UI flicker when setting measure scale programmatically.
  • annotComponent.active() / pdfui.activateElement not firing activeAnnotation.
  • First programmatic Stamp rect/size mismatch; wrong behavior after document switch.
  • Cloud arc direction outward in some draw directions.
  • Custom stamp dropdown title/tooltip showing category instead of stamp name.
  • Error switching from hand tool to new custom dynamic stamp.
  • Wrong annotation selected on quick click-and-move away.
  • Chromium 86 (e.g. 360 Enterprise): pencil/typewriter errors, console errors, page residue.

Annotations — data exchange

  • Highlight JSON import re-attaching to text vs independent area highlight before export.
  • Import hang or blank page on specific documents.
  • Typewriter JSON import layout mismatch on rotated pages.
  • Incomplete caret annotations after importing PDFBox FDF.
  • U+00A0 shown as euro symbol after JSON round-trip.
  • JSON export failure on specific documents via API or UI.
  • XFDF rotation property names (rotation / rotate) vs history and interoperability.
  • JSON import failure when content ends with backslash (bad escaping).

Annotations — grouping

  • Group resize moving other members incorrectly.
  • setBorderWidth on grouped annots vs other border APIs on the group.
  • Unstable duplicate annotationUpdated on group move/line width.
  • setBorderInfo vs setBorderStyle / setBorderWidth inconsistency on groups.
  • Canvas not refreshing until scroll after group move/property change.

Security and signatures

  • Empty doc: add/delete Stamp then save—file size ballooning.
  • Viewport scroll down after sign when field is on left half of page.
  • Custom dynamic stamp gaps after list refresh.
  • Note popup icon visibility changed by open/download only—vs desktop Editor preferences.

Other

  • Next.js 12 official sample not loading SDK (aligned with Next 14 sample).
  • pdfViewer.offShortcutKey('ctrl+v') not disabling paste.