福昕 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 JavaScript 的执行上下文迁移至
替代方案
请使用以下新版表单相关接口:
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
,用于表控制和修改表单控件的属性,并能实时监听这些属性的变化。 - 新增
FormFillerService
class,用于管理 PDF 表单字段的填充、交互行为以及设计模式,交互时相关的事件处理和状态控制。 - 新增接口
pdfDoc.autoRecognitionForm({ isSetTooltip: true })
,用于控制自动识别表单时是否设置表单域 tooltip。
签名增强
- 新增
IViewerUI.getSignatureUI()
, 支持自定义签名相关的 UI 界面(如签名、验签以及签名属性展示等)。 - 新增
PDFViewCtrl.annotComponents.SignatureAnnot
类,快速实现签名字段的创建、签署、验签等交互操作。 - 新增
SignatureWorkflowService
类,实现签名流程自定义。 - 新增
SignatureService
类,用于自定义 PDF 签名的验证逻辑,与后端或第三方验签对接。 - 新增
pdfDoc.sign()
的参数 (FontName
、FontSize
、iconFontName
和iconFontSize
),支持设置签名字体及通用名字体。 - 新增接口
pdfsignature.getSignatureType()
获取签名类型。 - 新增骑缝章配置接口, 用于控制骑缝章的垂直或水平移动:
PDFDoc.updatePagingSealInfo()
PDFSignature.getPagingSealConfig()
动作支持增强
- GoToR 动作支持:
- UI 新增
GoToR
动作创建功能,Actions
新增RemoteGotoAction
类,支持配置本地文件名词或路径、跳转位置和打开方式。
- UI 新增
- 文档级动作支持:
- 新增接口:
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 浏览器中打印时,打印预览显示异常的问题。
- 修复使用触控板滚动页面时,响应过于灵敏导致滚动过快的问题。
- 修复多次调整左侧面板宽度后,文档显示区域出现空白的问题。