Skip to content

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 平台:

  1. 构建合规性资源目录,例如 D:/compliance_resources
  2. compliance/win 目录下的 ectlangvar 目录复制到 D:/compliance_resources
  3. 根据目标平台架构,复制相应的库文件:
    • 32 位系统:复制 compliance/win/lib/x86 目录下的所有文件。
    • 64 位系统:复制 compliance/win/lib/x64 目录下的所有文件。

Linux 平台:

  1. 构建合规性资源目录,例如 /root/Desktop/compliance_resources
  2. compliance/linux 目录下的 ectlangvar 目录复制到 /root/Desktop/compliance_resources
  3. 根据目标平台架构,复制相应的库文件:
    • 32 位系统:复制 compliance/linux/lib/x86 目录下的所有文件。
    • 64 位系统:复制 compliance/linux/lib/x64 目录下的所有文件。

提示: 在 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

运行 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 目录下。