PDF/A 是专为电子文档长期存储而设计的 ISO 标准。其目标是确保文件视觉和逻辑内容在未来数十年内保持不变,不受环境和软件的影响。对于企业的电子档案而言,过渡到 PDF/A 具有重要的法律意义和数据保存管理价值。
PDF 和 PDF/A 的区别
PDF 和 PDF/A 是两种文件格式,各有其用途和特点。了解它们之间的区别对于选择适合您用途和需求的格式至关重要。
用途:
- PDF 是一种通用的文档交换格式。它确保文档的格式和外观不受所用软件或平台的影响。
- PDF/A 是专为长期存档而设计的 PDF 版本。它确保文档在未来不会被更改,因此非常适合用于图书馆、档案馆和法律平台。
结构和内容:
- PDF 支持视频、音频和 JavaScript 等活动元素。可能包含未嵌入文件中的字体。
- PDF/A – 所有字体必须嵌入文件中,以避免显示问题。禁止使用活动元素和外部资源链接。
播放稳定性:
- PDF – 由于依赖于缺失的字体或其他元素,在不同的设备和软件环境下可能出现播放问题。
- PDF/A – 由于嵌入了字体且无任何依赖项,即使多年以后,也能确保您的文档在所有支持 PDF/A 的设备上保持相同的显示效果。
法律意义和存档存储:
- PDF – 无法保证长期存储,因为软件变更可能会导致其内容无法访问。
- PDF/A – 符合国际存档存储标准 (ISO 19005),确保文档符合法律要求。
转换和兼容性:
- PDF - 转换为 PDF/A 可能具有挑战性,尤其是在文档包含活动元素或外部链接的情况下。
- PDF/A - 要创建 PDF/A,您必须使用符合该格式严格要求的专用软件。
PDF 和 PDF/A 之间的选择取决于用途:如果您需要创建日常使用的文档,PDF 就足够了;如果您需要长期存档文档,则应使用 PDF/A。
VintaSoft PDF .NET 插件功能
VintaSoft PDF .NET Plug-in 是一个用于在 Windows、Linux 和 macOS 上处理 PDF 和 PDF/A 文档的 .NET SDK。该解决方案的主要优势:
- 全面支持 PDF/A 标准:可处理 PDF/A-1a、PDF/A-2a、PDF/A-3a、PDF/A-1b、PDF/A-2b、PDF/A-3b、PDF/A-2u、PDF/A-3u、PDF/A-4、PDF/A-4e 和 PDF/A-4f。
- 灵活转换:将普通 PDF 文件转换为 PDF/A,并自动处理资源(例如字体嵌入、图像优化和元数据结构化)。
- 合规性验证:即时检查您的文档是否满足所选 PDF/A 配置文件的所有要求(适用于归档和传输到第三方系统)。
- 无外部依赖:完全使用 C# 原生实现的 PDF 引擎,确保稳定性并独立于第三方库。
- 自动化接口:该 SDK 提供批量处理功能,并内置集成到企业级 ECM 系统中,这对于大规模归档至关重要。
PDF 到 PDF/A 转换过程步骤
- 加载源 PDF 文档。用户可以使用 API 或可视化组件选择或自动检索文档。
- 选择 PDF/A 配置文件。指定所需的级别(例如,为了获得最佳兼容性,选择 PDF/A-1b;为了支持附件或颜色配置文件,选择 PDF/A-3u)。
- 转换和验证。SDK 会自动修正文档--嵌入字体、添加元数据、移除与标准不兼容的元素并优化对象结构。
- 合规性报告。转换完成后,提供详细报告--结果是否成功、进行了哪些更改、不合规的可能原因。
- 保存和集成。PDF/A 文件保存到所需存储空间,必要时使用电子签名进行签名,或集成到企业档案库中。
VintaSoft 如何简化开发人员和 IT 部门的工作
VintaSoft 提供强大的工具和解决方案,可显著简化开发流程并将其集成到企业系统中。这些软件产品在创建时充分考虑了开发人员的需求,从而实现高效的任务管理和更高的生产力:
- 跨平台:适用于所有支持平台的单一 API。
- 批量处理:支持批量转换--适用于档案数字化和数据迁移。
- 可视化和验证:提供工具,无需离开企业系统即可查看、搜索和评估文档的合规性。
- 保护和安全:您可以在转换过程中立即设置文件保护、电子签名和加密。
VintaSoft PDF .NET Plug-in 是企业实现 PDF/A 格式自动化转换以符合合规要求(例如,向国家档案馆提交文件、长期存储合同、会计、医疗和工程文件)的理想解决方案。透明的集成、卓越的性能和可靠性是大型企业和软件开发商都非常看重的优势。
结论
VintaSoft PDF .NET Plug-in 提供完整的 PDF/A 转换和验证周期 - 从加载源文件到自动实施长期存储,同时考虑到所有国际标准和业务流程要求。
以下 C# 代码演示了如何将 PDF 文档转换为 PDF/A-1b 文档:
/// <summary>
/// Converts a PDF document to conformance with PDF/A-1b specification.
/// </summary>
/// <param name="pdfFilename">The filename of source PDF document.</param>
/// <param name="outputPdfFilename">The filename of output PDF document.</param>
public static void ConvertDocumentToPdfA1b(string pdfFilename, string outputPdfFilename)
{
// determine that file must converted to the PDF/A-1b and saved back to the source file
bool sameFile = pdfFilename.ToUpperInvariant() == outputPdfFilename.ToUpperInvariant();
// create the PDF/A-1b converter
Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bConverter converter =
new Vintasoft.Imaging.Pdf.Processing.PdfA.PdfA1bConverter();
converter.LzwFixupCompression = Vintasoft.Imaging.Pdf.PdfCompression.Zip;
// converter.OutputIntentDestIccProfile = ...
// execute the conversion
System.Console.WriteLine("Conversion...");
Vintasoft.Imaging.Processing.ConversionProfileResult result =
converter.Convert(pdfFilename, outputPdfFilename, new Vintasoft.Imaging.Processing.ProcessingState());
// if PDF document is converted successfully
if (result.IsSuccessful)
{
System.Console.WriteLine("Document converted to PDF/A-1b.");
}
// if PDF document is NOT converted
else
{
if (!sameFile)
System.IO.File.Delete(outputPdfFilename);
throw result.CreateConversionException();
}
}