Skip to content

福昕 PDF SDK v12.0 ​

发布日期:2026 年 9 月 30 日

本页说明福昕 PDF SDK(桌面/服务器)相对 v11.1 的 PDF 能力变更。FLD、OFD 以及 PDF 与 OFD 互转请参阅 福昕 PDF&OFD SDK 发版说明。

不兼容变更 ​

从 v11.1 升级时,以下变更可能需要修改代码;未调整的项目可能无法编译或出现行为变化。

Node.js npm 包名变更 ​

中文区 npm 包名已调整。升级到 12.0 后,安装命令与代码中的 require / import 需同步修改:

旧v12.0
包名@foxitsoftware/foxit-pdf-sdk-node 或 @fuxin/foxit-pdf-sdk-node@fuxinsoft/fuxin-pdf-sdk-node
bash
# v12.0
npm i @fuxinsoft/fuxin-pdf-sdk-node
# 或
yarn add @fuxinsoft/fuxin-pdf-sdk-node

所需操作: 全局检索并替换旧包名;重新安装依赖后验证 Node.js 示例与现有工程可正常加载原生模块。详见 Node.js 入门。

SearchCallback::NeedToCancel — 新增纯虚方法 ​

全文检索回调新增纯虚方法,未实现将导致编译失败:

cpp
// 旧版本:无此方法
// 12.0 起
virtual bool NeedToCancel() = 0;

所需操作: 所有 SearchCallback 子类必须实现该方法;若不需要取消,直接返回 false。详见 全文检索 · 协作取消。

WatermarkSettings 构造函数与 Set — 参数扩展 ​

构造函数与 Set 在末尾新增两个参数:

项目旧版本12.0 起
新增参数—bool is_offset_centered, float relative_scale_to_page
cpp
// 旧版本
WatermarkSettings(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity);
settings.Set(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity);

// 12.0 起
WatermarkSettings(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity,
                  is_offset_centered, relative_scale_to_page);
settings.Set(position, offset_x, offset_y, flags, scale_x, scale_y, rotation, opacity,
             is_offset_centered, relative_scale_to_page);

所需操作: 按新签名补充参数。不需要相对缩放时可传 relative_scale_to_page = 0(或按业务约定);不需要居中偏移时可传 is_offset_centered = false。详见 水印 · 相对比例。

FillerAssistCallback::Refresh — 签名变更 ​

表单填充辅助回调的刷新接口签名变更:

cpp
// 旧版本
virtual void Refresh(const PDFPage& page, const RectF* rect) = 0;

// 12.0 起
virtual void Refresh(const PDFPage& page, const RectF& rect, bool has_reparse_page) = 0;

所需操作: 更新所有 FillerAssistCallback(或等价命名)实现:rect 改为引用;按需处理 has_reparse_page。详见 AcroForm · Refresh。

Preflight::Analyze / AnalyzeAndFixup — 返回类型变更 ​

合规模块中上述接口由无返回值改为返回 ResultInformation。参数未变,仅返回类型变化:

接口旧版本12.0 起
AnalyzevoidResultInformation
AnalyzeAndFixupvoidResultInformation

所需操作: 调用方按新返回类型接收并处理结果。详见 Compliance · ResultInformation。

仅在使用对应新能力时才需要实现的回调(未使用则无需改动):

  • PreflightGroupLocalCallback:经 Preflight::SetPreflightGroupLocalCallback 本地化分组项名称/注释。需实现 Release、GetGroupItemLocalName、GetGroupItemLocalComment

TaggedPDF / 无障碍 API — 头文件迁移与 StartTagDocument ​

PDF 无障碍相关 API 迁入 accessibility 附加模块;自动标记入口也有调整:

项目旧版本12.0 起
头文件路径pdf/pdfaccessibility/…addon/accessibility/…(包内亦可能提供 fs_taggedpdf.h 等,以发布包为准)
构造函数TaggedPDF(const PDFDoc& doc)TaggedPDF(const PDFDoc& doc, bool is_fix = false)
打标签入口StartTagDocument(pause = NULL);另有 SetCallbackStartTagDocument(pause, report_callback = NULL, callback = NULL);SetCallback 已弃用
pause 默认值有默认 NULL无默认值,须显式传入(可为 NULL)
cpp
// 旧版本
TaggedPDF tagged(doc);
tagged.SetCallback(cb);
tagged.StartTagDocument();

// 12.0 起
TaggedPDF tagged(doc, false);
tagged.StartTagDocument(NULL, report_stream, provider_callback);  // pause 须显式传入

所需操作: 更新 #include;去掉 SetCallback,改在 StartTagDocument 传入报告流与可选的 AutoTagProviderCallback;始终显式传入 pause。详见 可访问性 · 自动标记。

DWG2PDFSettingData::export_hatches_type — 默认值变更 ​

未显式设置时,填充(hatch)导出默认类型发生变化(静默行为变化):

属性旧版本默认12.0 起默认
export_hatches_typee_DWG2PDFExportHatchesTypeBitmape_DWG2PDFExportHatchesTypePolygons
other_export_hatches_type—(无此属性)e_DWG2PDFExportHatchesTypeBitmap
gradient_export_hatches_type—(无此属性)e_DWG2PDFExportHatchesTypeBitmap

所需操作: 若需保持旧版本行为,显式设置 export_hatches_type = e_DWG2PDFExportHatchesTypeBitmap;可按需配置新增的其他/渐变填充属性。详见 DWG 转 PDF · 布局与图框。

JavascriptEventType — 部分枚举数值偏移 ​

旧版本中,FieldKeyStroke(值为 19)与 FieldValidate 之间预留了未使用的整型空位(20)。12.0 将该空位分配给 FieldValidate,其后枚举依次前移 1:

枚举符号(示例)旧版本整型值12.0 起整型值
FieldKeyStroke1919(未变)
FieldValidate2120
FieldCalculate2221
FieldFormat2322
…直至 MediaStop4645

所需操作: 始终使用枚举符号(如 e_JavascriptEventTypeFieldValidate),不要硬编码整型枚举值。若业务写成 if (type == 21) 并期望 FieldValidate,在 12.0 及更高版本中整型 21 实际对应 FieldCalculate。详见 JavaScript · 事件类型。

新增与增强 ​

平台 ​

  • Node.js(Node-API):将 Node.js 原生绑定从传统 Node/V8 Binding 迁移到 Node-API,并提供 napi3 / napi6 / napi8 预编译包,扩大兼容范围(约 Node.js 8.15–26;个别历史小版本除外);安装时自动匹配当前运行环境。

  • Simple Demo 命令行示例:Simple Demo 支持命令行参数,示例发布于 https://github.com/foxitsoftware/foxit-pdf-sdk-cli-samples。

转换 ​

  • Markdown 与 PDF 互转:新增 Markdown 转 PDF(Md2PDF::ConvertFromMarkdown)与 PDF 转 Markdown(PDF2Md::ConvertToMarkdown);使用前需加载 Conversion 库并具备对应模块授权。
  • 增强 DWG/DXF 转 PDF:可通过 DWG2PDFSettingData 配置布局范围、图框 XML、自动切割、线宽样式与输出 DPI 等。默认 hatch 类型变更见上文 export_hatches_type。
  • Java 跨平台统一 Office 转 PDF 入口:fromWord / fromExcel / fromPowerPoint 使用同一套方法参数,由 SDK Java 绑定按平台内部分派;原有分平台 API 仍保留。

OCR ​

  • 增强 OCR 识别质量(大图处理、特定中文乱码等场景)。请同步升级本版本配套的 ABBYY OCR 资源包。

安全与签名 ​

  • ISO 32004 文档完整性保护:独立模式(PDFDoc::StartIntegrityProtection)与签名附着模式(StartIntegrityProtectionWithSignature),可配置摘要算法、口令、权限位与是否加密元数据。

文本与内容 ​

渲染 ​

  • 位图转换为 CMYK:Bitmap::ConvertFormat(..., e_DIBCmyk),可将 RGB / ARGB / RGB32 等位图直接转为 CMYK。
  • 增强 CMYK 页面渲染性能(同文档复测:Win32 约降 86%,Win64 约降 19%)
  • 增强带 HENABLESKIP 的 halftone JBIG2 图像解码

表单与注释 ​

  • 按矩形区域批量获取标注:PDFPage::GetAnnotsAtRect / GetAnnotsAtDeviceRect,补齐既有按点命中接口;带 Hidden / NoView / Invisible 标志的标注不会返回。

标准与合规 ​

  • PDF/A-4e / PDF/A-4f:新增验证与转换。请同步升级本版本配套的 Compliance 资源包。

无障碍 ​

  • 无障碍检查、修复、导航与标签树:公开 AccessibilityChecker、AccessibilityFixer、AccessibilityNavigator、ReadingOrder、TagTreeEditor 等能力。
  • 增强 AutoTagging 结构识别:改善标题层级(如 H1/H2)识别不足、结构树过于扁平的问题,结果更接近常见阅读器识别效果。

文档与页面 ​

问题修复 ​

转换 ​

  • 修复了 DWG2PDF 在缺少特定字体时出现字体漂移、字号错乱的问题(可通过为引擎 Fonts 目录补充相应 .shx 字体规避/修复)
  • 修复了 Windows Java 环境下 DWG2PDF 因 ODA 导出组件与 JDK 自带运行库冲突导致执行异常/崩溃的问题
  • 修复了特定 DWG 图纸转换为 PDF 后部分文字乱码的问题
  • 修复了历史版本 DWG2PDF 转换结果出现乱码的问题
  • 修复了 DWG2PDF 转换后 PDF 丢失原图图层信息的问题
  • 修复了 DWG2PDF 转换后线宽等信息未正确保留的问题
  • 修复了 PDF 转 Word / Excel 时部分字体被非预期替换的问题
  • 修复了 Office2PDF 在缺少字体时错误提示 “No 3D module right” 的问题,改为准确的错误信息
  • 修复了 Linux 环境下特定 DWG 文件转换后文字乱码(显示为 “?”)的问题
  • 修复了特定 DWG 转换后线条挤压叠在一起的问题
  • 修复了 Linux Java 在 OCR 与 PDF2Word 引擎组合流程中转换崩溃的问题

渲染 ​

  • 修复了 knockout 透明组 shape 计算错误导致预览效果与 Adobe / WPS 不一致的问题
  • 修复了特定 XFA 文档渲染结果与 Adobe 不一致的问题
  • 修复了 Output Preview 场景下部分文字变粗、抗锯齿异常的问题(相对 v11.1 回归)
  • 修复了带边框的链接注释在渲染/转图时边框不显示的问题
  • 修复了开启模拟叠印(EnableSimulateOverprint)后效果与 Adobe 不一致的问题

文档与页面 ​

  • 修复了为 PDF 增加嵌入字体的 FreeText 注释后,PDF/A 验证耗时过长且验证结果输出不完整的问题
  • 修复了 C# 向页眉/页脚写入部分 Unicode 符号时出现乱码的问题(C++ 侧无此问题)
  • 修复了结构异常 PDF 上 Bookmark::MoveTo 可能挂起或触发栈溢出的问题,改为更稳健地返回错误
  • 修复了将书签节点移动为父节点兄弟节点时结果不符合预期的问题
  • 修复了设置 PageBox 后重新读取页面宽高未变化的问题(需配合 PDFPage::Normalize() 等正确使用路径)

OCR ​

  • 修复了特定文档 OCR 后文字位置偏差与重影的问题
  • 修复了特定页面 OCR 后结果上下翻转的问题
  • 修复了特定页面 OCR 后出现翻转或旋转 90° 的问题

文本与内容 ​

  • 修复了 PDFPage::AddText 偶发报错的问题
  • 修复了使用 TextSearchReplace 将日文替换为英文后文本不可见的问题
  • 修复了使用 SimSun-ExtB 创建文本对象时生僻字不显示,以及 IsCharSupported 误判的问题
  • 修复了 .NET Core 中 TextPage.GetText 返回结果与 .NET Framework 不一致的问题
  • 修复了 Font::IsCharSupported 对部分字体(如 HanaMinA)判断不准确的问题

平台 ​

  • 修复了特定授权场景下在 Linux(如 Ubuntu 24)触发堆损坏类崩溃的问题
  • 修复了 Linux ARM 上 .NET 调用 TextPage.GetChars 报无法加载 fsdk.dll 的问题
  • 修复了并发编辑场景下文档对象错位/格式损坏的问题

安全与签名 ​

  • 修复了水印字体执行 embed() 后字符串末尾字符位置不正确的问题
  • 修复了调用 EmbedFont 相关流程后,Adobe 打开特定页面报错的问题
  • 修复了 Linux 上从路径加载字体做中文平铺水印时水印不显示的问题

打印 ​

  • 修复了应用退出时未调用 PrintManager.Release 可能触发 Access Violation 的问题
  • 修复了 PrintManager 在 release/close 路径上误用已关闭打印机句柄的问题

表单与注释 ​

  • 修复了通过 SDK 添加的 Stamp 导出为 FDF 时缺少 /Length 条目的问题
  • 修复了 XFADoc::FlattenTo 丢失带变音符号字段值的问题

优化 ​

  • 修复了压缩优化对已子集化/未嵌入字体处理不一致,导致部分字体被替换的问题