Skip to content

福昕 PDF SDK Web 版 11.0

发布日期: 2025 年 6 月 30 日

重大变更

表单模块重构

11.0 版本对表单模块(包括表单脚本的的执行方式)进行了全面重构,实现了 更快的渲染性能更贴近原生的视觉效果,以及* 更丰富的 API 功能*。本次改动不向后兼容旧的版本。

已移除的 API

以下旧版表单类与接口已被删除,部分接口直接被新的表单 API 覆盖:

  • PDF.form.PDFControl
  • PDF.form.PDFField
  • PDF.form.PDFForm
  • PDFDoc.loadPDFForm

影响范围

  • API 变更: 依赖上述接口的代码需迁移至新版表单 API。
  • 渲染行为更新:表单字段不再通过 DOM 节点方式渲染,重构为由 PDF 渲染引擎直接绘制。
  • PDF JavaScript 架构升级
    • PDF JavaScript 的执行上下文迁移至 Web Worker,确保主线程安全操作。
    • 核心 PDF JavaScript API 重构为 C++/WebAssembly 实现。

替代方案

  • 请使用以下新版表单相关接口:

    • PDF.form.PDFForm
    • PDF.form.PDFFormField
    • PDFViewCtrl.form.FormFillerService
    • addons.form_designer_addon
  • 请参考开发者文档中的《PDF 表单 API 升级指南》,获取详细的迁移说明。


签名工作流重构

标准表单(AcroForm)和动态表单(XFA)的签名与验签流程全面重构,提升了接口的可用性与可维护性。

弃用 API

  • PDFUI.registerSignatureFlowHandler
  • PDFUI.setVerifyHandler

影响范围

  • 这些接口在 11.0 中依旧可用,但将在后续版本中移除。如您的项目依赖这些接口,建议尽快迁移至新版签名接口。

替代方案

  • 请使用以下新版签名相关接口::
    • PDF.form.signatureService
    • PDF.form.SignatureWorkflowService* 请参考开发者文档中的《签名工作流 API 迁移指南》,获取完整的迁移步骤和代码示例。

动作接口系统重构

弃用旧版中独立的 Action 接口架构,采用更现代的动作管理系统和事件处理机制。

弃用 API

  • PDF.actions.action

影响范围

  • 这个类在 11.0 中依旧可用,但将在后续版本中移除。如您的项目依赖这些接口,建议尽快迁移到新版动作相关接口。

替代方案

  • 参考开发者文档中的《PDF 动作 API 升级指南》进行迁移。

书签 API 清理

所有旧版 (10.0之前的版本) 书签相关 API 已在此版本中彻底移除。

影响范围

  • 任何仍在使用旧书签 API 的应用程序,在 11.0 版本中将无法正常运行。

替代方案

  • 参考开发者文档中的《书签 API 升级指南》进行迁移。

新增功能与增强项

表单增强

  • 新增插件接口模块 form-designer-addon,用于表控制和修改表单控件的属性,并能实时监听这些属性的变化。
  • 新增 FormFillerServiceclass,用于管理 PDF 表单字段的填充、交互行为以及设计模式,交互时相关的事件处理和状态控制。
  • 新增接口 pdfDoc.autoRecognitionForm({ isSetTooltip: true }),用于控制自动识别表单时是否设置表单域 tooltip。

签名增强

  • 新增 IViewerUI.getSignatureUI(), 支持自定义签名相关的 UI 界面(如签名、验签以及签名属性展示等)。
  • 新增 PDFViewCtrl.annotComponents.SignatureAnnot类,快速实现签名字段的创建、签署、验签等交互操作。
  • 新增 SignatureWorkflowService类,实现签名流程自定义。
  • 新增 SignatureService类,用于自定义 PDF 签名的验证逻辑,与后端或第三方验签对接。
  • 新增 pdfDoc.sign()的参数 (FontNameFontSizeiconFontNameiconFontSize),支持设置签名字体及通用名字体。
  • 新增接口 pdfsignature.getSignatureType() 获取签名类型。
  • 新增骑缝章配置接口, 用于控制骑缝章的垂直或水平移动:
    • PDFDoc.updatePagingSealInfo()
    • PDFSignature.getPagingSealConfig()

动作支持增强

  • GoToR 动作支持
    • UI 新增 GoToR 动作创建功能, Actions新增 RemoteGotoAction 类,支持配置本地文件名词或路径、跳转位置和打开方式。
  • 文档级动作支持
    • 新增接口:
      • PDFDoc.setOpenAction(action)
      • PDFDoc.removeOpenAction()
      • PDFDoc.getOpenAction()
  • 注释和控件动作管理
    • 新增接口:
      • Annot::getAllActionData()
      • Annot.updateAction()
      • Annot.removeAction()
      • Annot.appendAction
      • Annot.supportsAction
      • PDFFormPropertiesService.updateAction()
      • PDFFormPropertiesService.removeAction()
      • PDFFormPropertiesService.updateAdditionalAction()
      • PDFFormPropertiesService.appendAdditionalAction()
  • 附加动作 (Additional Action) 管理
    • 新增类 actions.AdditionalAction< T >,用于管理由注释、页面对象或交互式表单字段触发的附加动作.

注释功能增强

  • 边框与填充色支持分离设置,新增接口:
    • MarkupAnnot.setBorderOpacity(), getBorderOpacity()
    • MarkupAnnot.setFillOpacity(), getFillOpacity()
  • 图章支持 Webp 格式。
  • 图章图标支持缓存至浏览器 IndexedDB.
  • 控制是否显示数字图章身份信息提示框,新增接口:
    • enableShowIdentityInfoDialog()
  • 链接支持自定义 URL 协议。
  • 注释组件配置新增属性 AnnotComponentConfig::moveDirection,用于控制注释或表单域控件移动方向。

文本编辑增强

  • 新增接口
    • page.splitTextInRect(),支持按字符粒度分割文本。
    • PageEditorAddon.changeTextColorByRect(),支持在指定区域内修改文本颜色

文档清理功能支持

  • UI 新增自动检测并清理隐藏/私有信息功能
  • PDFDoc 新增接口:
    • sanitize()
    • removeHiddenData()

查看器偏好设置支持

  • 新增类:
    • PDFViewPreference
  • PDFDoc新增接口:
    • setOpenAction()
    • getOpenAction()
    • removeOpenAction()
    • getViewPreference()

本地字体访问控制

  • UI 新增本地字体访问确认弹窗, PDFViewer 新增接口 grantQueryLocalFontsPermission(),控制是否允许访问本地系统字体。

PDF/A 增强

  • UI 新增 PDF/A 文档打开时是否允许编辑确认弹窗,PDFViewer 新增接口 grantEditPDFAPermission(permission)控制编辑权限或提示行为

文件集可访问性增强

  • 文件集的 布局详细信息 视图支持键盘导航(Home、End、Tab、Enter、方向键),提供更好的可访问性和屏幕阅读器兼容性。

文件下载进度

  • getFile() 增加 progressHandler 参数,可获取实时下载进度回调。

新增示例项目

  • 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/

修复

注释相关修复

  • 修复了橡皮擦的圆圈指示框未随页面缩放比例缩放的问题。
  • 修复在特定图纸文档中添加 Callout 注释并输入内容后,注释位置偏移的问题。
  • 修复了某些文档中在首页添加 Callout 注释失败的问题。
  • 修复了 SDK Viewer 添加的检查标记图章 (Checkmark) 在 其它阅读器中无法正确显示的问题。
  • 修复特定文档中 FreeText 注释无法在注释列表中显示的问题。
  • 修复了从注释列表中选择多个注释后,无法取消选择的问题。
  • 修复了绘图类注释可绘制超出页面边界的问题。
  • 修复了绘图标注调色板取色失败,或通过代码修改颜色后未正确更新的问题。
  • 修复 Typewriter 设置颜色后,导出为 JSON 再导入后,文本颜色丢失的问题。
  • 修复 FreeText 注释设置字体后,导出 XFDF 再导入,显示异常的问题。
  • 修复特定文档中部分页面的 FreeText 无法正常显示的问题。
  • 修复 FreeText 中含非英文字符时,通过接口 exportAnnotsToFDF 导出的数据文件体积异常增大的问题。
  • 修复 Circle Area 测量注释未能正确响应 ·page.setMeasureScaleRatio() 设置的问题。
  • 修复 Distance 测量注释的比例值显示错误的问题。
  • 修复因单位换算逻辑精度问题导致 Pencil 绘制表现异常的问题。
  • 修复特定文档中,右键点击注释属性导致控制台报错的问题。
  • 修复 Link 类型注释无法触发 rightClickAnnotation 事件的问题。
  • 修复 Stamp 调整大小时无法保持纵横比的问题。
  • 修复通过 PDFViewer::addAnnotationIcon 添加自定义 Stamp 失败的问题。

页面显示与操作相关修复

  • 修复特定图纸文件使用 SDK 比较功能时,输出结果异常的问题。
  • 修复通过 getText 接口提取文本时,与实际内容不符的问题。
  • 修复设置对象 Matrix 后,部分文本和图像对象无法显示的问题。
  • 修复在 Electron 框架中接入SDK 出现 nodePath.dirname is not a function 的兼容性问题。
  • 修复 Service-Worker 注册失败导致 Safari 浏览器无法加载 PDF 的问题。
  • 修复打开特定 PDF 文档时报控制台错误的问题。
  • 修复因层内容为空导致文档加载失败的问题。
  • 修复通过 openPDFByHttpRangeRequest() 加载文档时,由于 Range 解析错误导致解析失败的问题。
  • 修复字体编码写入错误导致在其他阅读器中无法显示 SDK 自定义字体的问题。
  • 修复 UI 层匹配任意字体时,只有首个字体设置生效的问题。
  • 修复 Redaction 区域计算错误,导致整页被遮罩的问题。
  • 修复通过 pdfViewer.rotateTo 接口旋转页面时,视图未及时更新的问题。
  • 修复带签名的文件中,表单域 Base Font Name 获取失败,导致签名外观不显示的问题。
  • 修复了在搜索过程中切换页面时,FindNext 功能出现的内存溢出问题。
  • 修复了一个性能问题,将线性化PDF首页渲染时间从约60秒缩短至仅1秒。

权限与 JavaScript 执行相关修复

  • 修复包含 JavaScript 的 PDF 表单未正确触发焦点事件,导致脚本无法执行的问题。
  • 修复 PDF 表单文件中的异步 JavaScript 执行逻辑处理不当,导致行为异常的问题。
  • 修复具有文本编辑权限的文档中,文本无法被编辑的问题。
  • 修复无权限限制的文档使用 setPagesBox 裁剪页面时,错误提示权限不足的问题。
  • 解决了当文档没有批注权限时,SDK 未禁用 Search&Highlight功能下的高亮复选框的问题。"

UI 与交互修复

  • 修复 pdfUI.confirm() 参数无法自定义的问题。
  • 修复在 iOS Chrome 浏览器中打印时,打印预览显示异常的问题。
  • 修复使用触控板滚动页面时,响应过于灵敏导致滚动过快的问题。
  • 修复多次调整左侧面板宽度后,文档显示区域出现空白的问题。