Skip to content

PDF 合规性 (Compliance)

PDF Compliance

福昕 PDF SDK 支持 PDF 版本标准化转换,当前支持的版本有 PDF 1.3, PDF 1.4, PDF 1.5, PDF 1.6 和 PDF 1.7。当转换到 PDF 1.3 版本时,如果源文档含有透明度的数据,则其会被转换到 PDF 1.4 版本而不是 PDF 1.3 版本 (PDF 1.3 版本不支持透明度);如果源文档不含有任何透明度的数据,则会按预期转换到 PDF 1.3 版本。

PDF/A Compliance

PDF/A 是一种 ISO 标准的 PDF 文件格式版本,用于电子文档的存档和长期保存。PDF/A 与 PDF 的不同之处在于 PDF/A 禁用了 PDF 中不适合长期存档的特性,比如字体链接 (与嵌入字体相对)、加密、JavaScript、音频和视频等。

福昕 PDF SDK 提供 APIs 用以将 PDF 转换为符合 PDF/A 标准的文档,或验证 PDF 是否符合 PDF/A 标准。支持的 PDF/A 标准包括 PDF/A-1a、PDF/A-1b、PDF/A-2a、PDF/A-2b、PDF/A-2u、PDF/A-3a、PDF/A-3b、PDF/A-3u (ISO 19005- 1, 19005 -2 和 19005-3)。

PDF/E Compliance

PDF/A 是一种 ISO 标准的 PDF 文件格式版本,用于工程文档的存档和可靠交换。其适用于在工程工作流程中创建、交换、存档和打印文档。

从 10.1 版本开始,福昕 PDF SDK 提供 APIs 用以将 PDF 转换为符合 PDF/E 标准的文档,或验证 PDF 是否符合 PDF/E 标准。其支持 PDF/E-1 标准。

PDF/X Compliance

PDF/X 是一种 ISO 标准的 PDF 文件格式版本,用于交换图形密集的文档。其主要用于确保在设计、绘图、工程和图形艺术等领域打印文件时的一致性和可预测性。 从 10.1 版本开始,福昕 PDF SDK 提供 APIs 用以将 PDF 转换为符合 PDF/X 标准的文档,或验证 PDF 是否符合 PDF/X 标准。支持的 PDF/X 标准包括 PDF/X-1a、PDF/X-3、PDF/X-4、PDF/X-4p。

预检功能

从 10.1 版本开始,福昕 PDF SDK 支持预检功能,该功能允许用户使用福昕 PDF SDK 获取预检键,以分析或修复 PDF 文件

本节将介绍如何设置相关环境以运行 'compliance' 或者 'preflight' demo。

NOTE

  • 对于 Mac Java,需要将 var\legacy文件夹下的 pdfEngineLight.dylib 文件拷贝至引擎根目录进行替换。另外,其不支持多线程。

系统需求

平台: Windows, Linux (x86 和 x64), Mac

开发语言: C, C++, Java, C#, Python, Objective-C, Node.js

License Key: license key 中包含 'Compliance' 模块的权限

SDK 版本: Foxit PDF SDK (C++, Java, C#, Objective-C) 6.4 或更高版本 (对于PDF Compliance, 则需要Foxit PDF SDK 7.1或更高版本); Foxit PDF SDK (C) 7.4 或更高版本; Foxit PDF SDK (Python) 8.3或更高版本; Foxit PDF SDK (Node.js) 10.0 或更高版本

NOTE

  • 对于 PDF/E、PDF/X 以及预检功能,需要使用福昕 PDF SDK 10.1 版本。

Compliance 资源文件

请联系 Foxit 支持团队或者销售团队以获取 Compliance 资源文件包。

获取到资源文件包后,将其解压到所需目录 (比如,Windows 解压到 "compliance/win",Linux 解压到 "compliance/linux",Mac 解压到 "compliance/mac"),然后您将看到 Compliance 的资源文件如下:

Windows 平台:

Windows Compliance Folder

Windows Compliance Folder

Linux 平台:

Linux Compliance Folder

Linux Compliance Folder

Mac 平台:

Mac Compliance Folder

Mac Compliance Folder

运行 compliance 或者 preflight demo

在 10.1 版本之前,福昕 PDF SDK 提供了一个 compliance demo 用来展示如何使用福昕 PDF SDK 验证 PDF 文档是否符合 PDF/A 标准,如何将 PDF 转换为符合 PDF/A 标准的文档,以及如何进行 PDF 版本标准化转换。该 demo 位于 \examples\simple_demo\compliance 文件夹下。

从 10.1 版本开始,福昕 PDF SDK提供了2个 demo:

  • 一个 compliance demo 用来展示如何使用福昕 PDF SDK 验证 PDF 文档是否符合 PDF/A 或 PDF/E 或 PDF/X 标准,如何将 PDF 转换为符合 PDF/A 或 PDF/E 或 PDF/X 标准的文档,以及如何进行 PDF 版本标准化转换。该 demo 位于 \examples\simple_demo\compliance 文件夹下。
  • 一个 preflight demo 用来展示如何使用福昕 PDF SDK 获取预检键,以分析或修复 PDF 文件。该 demo 位于 \examples\simple_demo\preflight 文件夹下。

构建一个 compliance 资源目录

以 Java 开发语言为例,在运行 compliance 或者 preflight demo 之前,您需要首先构建一个 compliance 资源目录,然后将该目录的路径传给 ComplianceEngine.initialize 接口用来初始化 compliance 引擎。

从 10.0 版本开始,compliance 资源文件提供了默认的线程安全机制。对于多线程,应首先调用 API ComplianceEngine.initializeThreadContext,然后再使用 compliance 插件模块中的其它接口。

Windows

在 Windows 平台构建一个 compliance 资源目录,请按照如下的步骤:

  1. 新建一个文件夹作为 compliance 的资源目录。比如,D:/compliance_resources
  2. compliance/win 目录下的 ectlangvar 文件夹拷贝到 D:/compliance_resources
  3. 根据要编译的平台架构,选择相应的库资源。
  • 如果使用 win32,则将 compliance/win/lib/x86 文件夹下的所有文件拷贝到 D:/compliance_resources
  • 如果使用 win64,则将 compliance/win/lib/x64 文件夹下的所有文件拷贝到 D:/compliance_resources

例如,使用 win32 平台架构,则 compliance 资源目录如下所示:

Win32 Compliance Folder

Win32 Compliance Folder

Linux

在 Linux 平台构建一个 compliance 资源目录,请按照如下的步骤:

  1. 新建一个文件夹作为 compliance 的资源目录。比如,/root/Desktop/compliance_resources
  2. compliance/linux 目录下的 ectlangvar 文件夹拷贝到 /root/Desktop/compliance_resources
  3. 根据要编译的平台架构,选择相应的库资源。
  • 如果使用 linux32,则将 compliance/linux/lib/x86 文件夹下的所有文件拷贝到 /root/Desktop/compliance_resources
  • 如果使用 linux64,则将 compliance/linux/lib/x64 文件夹下的所有文件拷贝到 /root/Desktop/compliance_resources

例如,使用 linux32 平台架构,则 compliance 资源目录如下所示:

Linux32 Compliance Folder

Linux32 Compliance Folder

对于 Linux 平台,在运行 demo 之前,您需要将 compliance 资源目录加入到系统共享库目录的查找路径中,否则 ComplianceEngine.initialize 会执行失败。

例如,在运行 demo 之前,您可以通过命令 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}: /root/Desktop/compliance_resources 将 compliance 资源目录临时加入到 LD_LIBRARY_PATH

Mac

对于 Mac 平台,您可以直接使用 compliance/mac 资源文件夹作为 compliance 的资源目录。

配置 Demo

以 Java 开发语言为例,构建 compliance 资源目录后,在 \examples\simple_demo\compliance\compliance.java 文件中配置 compliance demo,在 \examples\simple_demo\compliance\preflight.java 文件中配置 preflight demo。

本节以 Windows 平台为例,展示如何在 compliance.java 或者 preflight.java 文件中进行 demo 配置。对于 Linux 和 Mac 平台,其配置操作与 Windows 平台相同。

指定 compliance 资源目录

compliance.java 或者 preflight.java 文件中,如下所示,添加 compliance 资源目录,用以初始化 compliance 引擎。

初始化引擎库

初始化引擎库

NOTE

  • 如果您使用的是福昕 PDF SDK 的试用 key,则无需授权 compliance 引擎库。
  • 如果您使用的是福昕 PDF SDK 的正式授权 key,则福昕销售团队将向您发送一个额外的 unlock code,用于初始化 compliance 引擎库。将 unlock code 传递给初始化函数 ComplianceEngine.initialize (compliance\_resource\_folder\_path, compliance\_engine\_unlockcode)

(可选) 为 compliance engine 设置语言(仅适用于 compliance demo)

ComplianceEngine.setLanguage 函数用来为 compliance 引擎设置语言。默认的语言是英语,所有支持的语言如下所示: "Czech", "Danish", "Dutch", "English", "French", "Finnish", "German", "Italian", "Norwegian", "Polish", "Portuguese", "Spanish", "Swedish", "Chinese-Simplified", "Chinese-Traditional", "Japanese", "Korean".

例如,取消注释 ComplianceEngine.setLanguage 函数,并将语言设置为 "Chinese-Simplified"。

设置语言

设置语言

(可选) 为 compliance 引擎设置临时文件夹(仅适用于 compliance demo)

ComplianceEngine.setTempFolderPath 函数用于设置一个临时文件夹以存储处理过程 (如验证或转换) 中生成的文件。如果此函数未设置自定义的临时文件夹,则将使用系统中默认的临时文件夹。

例如,取消注释 ComplianceEngine.setTempFolderPath 函数,并将路径设置为 D:/compliance_temp (必须为一个有效的路径)。

设置临时文件夹

设置临时文件夹

运行 Demo

以 compliance demo 为例,定位到 \examples\simple_demo\compliance 目录,运行 RunDemo.bat,然后控制台将默认打印以下内容:

运行 Demo

运行 Demo

输出文档位于 \examples\simple_demo\output_files\compliance 文件夹下。