福昕 PDF SDK v12.0(预览版)
发布日期:2026 年 6 月 30 日
本版本为 预览版,API 与开发者文档可能在正式发布前调整。从 v11.x 升级时请重点核对下文「不兼容变更」。
不兼容变更
以下变更在从 v11.x 升级时需要修改代码。未做调整的项目将无法编译或可能出现异常行为。PDF/OFD 互转迁移说明另请参阅 PDF 与 OFD 互转。
OFD 模块命名空间迁移
OFD 引擎由 Add-on 架构演进为 SDK 内置能力,命名空间与包路径整体迁移:
| 语言 | 旧架构 | 新架构 |
|---|---|---|
| C++ | foxit::addon::ofd | foxit::ofd |
| Java | com.foxit.sdk.addon.ofd | com.foxit.sdk.ofd |
所需操作: 更新 #include、命名空间与 Java import 语句;头文件位于 include/ofd/(如 ofd/fs_ofdpackage.h、ofd/fs_ofddoc.h)。
Library::InitializeOFDEngine / ReleaseOFDEngine — 已移除
OFD 引擎随 SDK 一体化交付,不再需要单独初始化或释放 OFD 运行时:
cpp
// v11.x
Library::InitializeOFDEngine(engine_path);
// ... 使用 OFD API ...
Library::ReleaseOFDEngine();
// v12.0
// 无需调用 InitializeOFDEngine / ReleaseOFDEngine
// 在 Library::Initialize 成功后直接使用 foxit::ofd 模块 API
所需操作: 删除所有 InitializeOFDEngine、ReleaseOFDEngine 调用及相关部署步骤(独立 OFD 运行库路径配置等)。
OFD 文档打开模型 — OFDDoc 不再按文件路径直接构造
OFD 文档模型对齐标准 Package → Document 结构:
| 项目 | v11.x(旧) | v12.0(新) |
|---|---|---|
| 打开方式 | OFDDoc(ofd_file_path) | OFDPackage 打开文件包 → LoadDocument → OFDDoc |
| 文档含义 | 简化模型 | 包内文档内容对象 |
cpp
// v11.x
foxit::addon::ofd::OFDDoc doc(ofd_path);
// v12.0
foxit::ofd::OFDPackage package(ofd_path);
foxit::ofd::OFDDoc doc = package.LoadDocument(0, password);
所需操作: 改用 OFDPackage 打开 OFD 文件并加载文档;包级保存、加密检查等操作在 OFDPackage 上完成。详见 OFD 功能概述 与 OFD 文档包。
OFDRenderer — 重命名为 OFDRender
渲染类更名并归入 foxit::common:
| 项目 | v11.x(旧) | v12.0(新) |
|---|---|---|
| 类名 | OFDRenderer | OFDRender |
| 头文件 | addon/ofd/fs_ofdrenderer.h | common/fs_render.h |
| 渲染选项 | — | OFDRenderOption |
所需操作: 替换类名与头文件引用;构造 OFDRender 并调用 StartRender 完成渐进式渲染。详见 OFD 渲染。
OFDPage 页面区域 — GetWidth / GetHeight 改为 GetPageBox
页面尺寸与区域应通过 PageBox 读取:
cpp
// v11.x
float w = page.GetWidth();
float h = page.GetHeight();
// v12.0
RectF box = page.GetPageBox(OFDPage::e_PhysicalBox);
float w = box.right - box.left;
float h = box.bottom - box.top;
所需操作: 使用 GetPageBox(PageBoxType) 获取页面区域并按需计算宽高。
PDF 与 OFD 互转 — Convert 迁移为 OfdConvert
互转入口由 Convert::FromOFD / Convert::ToOFD 调整为专用类 OfdConvert,OFDConvertParam 字段更丰富(如 document_index、dpi、jpg_quality、is_embed_font 等):
| 语言 | 旧版接口 | 新版接口 |
|---|---|---|
| C++ | foxit::addon::conversion::Convert::FromOFD / ToOFD | foxit::addon::conversion::OfdConvert::ToPdf / FromPdf / ToImage |
| Java | com.foxit.sdk.addon.conversion.Convert.fromOFD / toOFD | com.foxit.sdk.addon.conversion.OfdConvert.toPdf / fromPdf / toImage |
cpp
// v11.x
#include "include/common/fs_common.h"
#include "include/addon/conversion/fs_convert.h"
using namespace foxit::common;
Library::InitializeOFDEngine(engine_path);
foxit::addon::conversion::OFDConvertParam convert_param;
foxit::addon::conversion::Convert::FromOFD(src_ofd_path, L"", output_path + L"ofd2pdf.pdf", convert_param);
foxit::addon::conversion::Convert::ToOFD(src_pdf_path, L"", output_path + L"pdf2ofd.ofd", convert_param);
Library::ReleaseOFDEngine();
// v12.0
#include "include/addon/conversion/fs_convert.h"
using namespace foxit::addon::conversion;
OFDConvertParam param;
param.document_index = 0;
param.is_embed_font = true;
param.dpi = 150;
param.jpg_quality = 85;
param.password = "";
OfdConvert::ToPdf(src_ofd_path, "", output_path + L"ofd2pdf.pdf", param);
OfdConvert::FromPdf(src_pdf_path, "", output_path + L"pdf2ofd.ofd", param);
OfdConvert::ToImage(src_ofd_path, "", output_path + L"page0.jpg", param, 0);
所需操作: 移除 OFD 引擎初始化调用;改用 OfdConvert 静态方法;按业务需要配置 OFDConvertParam 新字段。
新增功能
本预览版新增 FLD 模块 与 OFD 模块(内置引擎,替代 v11.x Add-on 架构)。
FLD(板式文档)
- 新增 FLD 模块,支持 PDF/OFD 统一加载、类型识别、页面访问与渲染。
OFD
- 新增 OFD 模块,支持 OFD 文档包打开、页面处理,以及渲染、文本、注释、书签、附件、签名、水印等 OFD 专属能力。
- OFD 文档模型调整为
OFDPackage→OFDDoc→OFDPage;迁移说明见上文「不兼容变更」。