PDF 合规性示例配置与运行指南
本指南将详细介绍如何在 Java 环境下运行合规性 (compliance) 示例程序的环境需求及相关配置。开发者可查阅 PDF 合规性 了解功能详解。
多线程安全说明
- 多线程安全: 自 v10.0 版本起,福昕 PDF SDK 接口和合规性引擎已内置默认的线程安全机制。
- 开发者在实现多线程应用程序之前,请务必先调用
ComplianceEngine.initializeThreadContext
API,以确保线程上下文正确初始化。 - 初始化线程上下文后,即可安全地使用合规性插件模块的其他接口。
- 开发者在实现多线程应用程序之前,请务必先调用
- 平台限制: Mac Java 语言库目前不支持多线程操作。
系统要求
- 平台: Windows、Linux (x86 和 x64)、Mac
- 开发语言: C、C++、Java、C#、Python、Objective-C
- 授权许可: 包含
Compliance
模块权限的授权码 - SDK 版本:
- 福昕 PDF SDK (C++, Java, C#, Objective-C) 6.4 或更高版本(PDF 标准化转换需要 7.1 或更高版本)
- 福昕 PDF SDK (C) 7.4 或更高版本
- 福昕 PDF SDK (Python) 8.3 或更高版本
合规性资源文件获取
- 请联系福昕技术支持或您的销售代表获取获取合规性资源文件包。
示例运行指南
示例程序位置:
- 合规性示例程序,位于
\examples\simple_demo\compliance
目录下。
构建合规性资源目录
在运行合规性示例程序之前,您需要构建一个合规性资源目录,并将其路径传递给 ComplianceEngine.initialize
方法以初始化合规性引擎。
以下各平台构建资源目录说明假设您已将获取到的合规性资源包 Res_Compliance_***.zip
分别解压至以下目录:
compliance/win
compliance/linux
compliance/mac
Windows 平台:
- 构建合规性资源目录,例如
D:/compliance_resources
。 - 将
compliance/win
目录下的ect
、lang
和var
目录复制到D:/compliance_resources
。 - 根据目标平台架构,复制相应的库文件:
- 32 位系统:复制
compliance/win/lib/x86
目录下的所有文件。 - 64 位系统:复制
compliance/win/lib/x64
目录下的所有文件。
- 32 位系统:复制
Linux 平台:
- 构建合规性资源目录,例如
/root/Desktop/compliance_resources
。 - 将
compliance/linux
目录下的ect
、lang
和var
目录复制到/root/Desktop/compliance_resources
。 - 根据目标平台架构,复制相应的库文件:
- 32 位系统:复制
compliance/linux/lib/x86
目录下的所有文件。 - 64 位系统:复制
compliance/linux/lib/x64
目录下的所有文件。
- 32 位系统:复制
提示: 在 Linux 平台上运行示例程序前,请确保将合规性资源目录添加到系统共享库的搜索路径中,否则
ComplianceEngine.initialize
将失败。例如,可以使用以下命令临时添加:export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/root/Desktop/compliance_resources
Mac 平台:
在 Mac 平台上,您可以直接使用 compliance/mac
资源文件夹作为合规性资源目录。
提示:
- 对于 Mac Java 环境,请将资源包中
var\legacy
目录下的pdfEngineLight.dylib
文件复制到compliance/mac
目录进行替换。- Mac Java 语言库不支持多线程操作。
配置示例程序
在 \examples\simple_demo\compliance\compliance.java
文件中配置示例程序。以下配置说明以 Windows Java 语言库为例。
指定合规性资源目录:
在 compliance.java
文件中,指定合规性资源目录路径,以初始化合规性引擎。
Java
// "compliance_resource_folder_path" is the path of compliance resource folder.
String compliance_resource_folder_path = "D:/compliance_resources";
提示:
- 如果使用 福昕 PDF SDK 试用授权,无需授权合规性引擎库。
- 如果使用正式授权,请联系福昕销售团队提供专用的解锁码,用于初始化合规性引擎库:
ComplianceEngine.initialize(compliance_resource_folder_path, compliance_engine_unlockcode)
。
(可选) 设置合规性引擎语言:
使用 ComplianceEngine.setLanguage
方法设置引擎语言。默认语言为英语,其他支持的语言包括:Czech、Danish、Dutch、French、Finnish、German、Italian、Norwegian、Polish、Portuguese、Spanish、Swedish、Chinese-Simplified、Chinese-Traditional、Japanese 和 Korean。以下是设置语言为简体中文的示例代码:
Java
// Set languages. If not set language to ComplianceEngine, "English" will be used as default.
ComplianceEngine.setLanguage("Chinese-Simplified");
(可选) 设置合规性引擎临时文件夹:
使用 ComplianceEngine.setTempFolderPath
方法设置临时文件夹,用于存储验证或转换过程中生成的文件。若未设置,将使用系统默认临时文件夹。示例代码如下:
Java
// Set custom temp folder path for ComplianceEngine.
ComplianceEngine.setTempFolderPath("D/compliance_temp");
运行示例程序
定位至 \examples\simple_demo\compliance
目录,运行 RunDemo.bat
,控制台将输出相关信息:

运行 Demo
该示例程序:
- 验证
\examples\simple_demo\input_files\AboutFoxit.pdf
是否符合 PDF/A-1a 标准,并将其转换为符合 PDF/A-1a 标准的文件。 - 将
\examples\simple_demo\input_files\AF_ImageXObject_FormXObject.pdf
分别转换为 PDF-1.4 和 PDF-1.7 版本。
输出文档位于 \examples\simple_demo\output_files\compliance
目录下。