PDF/X、PDF/A、PDF/E:有什么区别,为什么有这么多格式?
多年来,已经创建了多种 PDF 子类型来满足各个行业的不同需求。让我们看看一些最流行的格式:PDF/X、PDF/A 和 PDF/E。
PDF 是一种通用文件格式,允许用户演示和共享文档,无论软件、硬件或操作系统如何。多年来,已经创建了多种 PDF 子类型来满足各个行业的不同需求。让我们看看一些最流行的格式:PDF/X、PDF/A 和 PDF/E。
PDF/X
PDF/X 是一种专业的图形交换标准,针对一致且可预测的打印进行了优化。与可以包含任何内容(例如交互式元素和媒体文件)的常规 PDF 不同,PDF/X 仅限于某些数据类型,这使其特别适合共享可打印的文件。
PDF/X的主要特点:
- 颜色模型。文档中的所有颜色都必须在已知的颜色空间中定义,通常是 CMYK 或专色。它消除了与印刷中颜色解释相关的不确定性。
- 内置资源。所有必需的资源(例如字体和图像)都必须嵌入到文件中。它确保文档在任何硬件上看起来都相同。
- 没有互动元素。没有评论、表单字段、视频和 JavaScript 等交互元素。
- 指定的输出格式。该文档必须包含有关打印时如何显示的信息,这意味着对页面的位置和布局有一定的要求。
PDF/X 子 类型:
PDF/X-1a:
- 基于 PDF 1.3 标准。
- 颜色仅定义为 CMYK 或专色。
- 不支持 ICC 配置文件。
PDF/X-3:
- 支持 CMYK、专色和 ICC 配置文件。
- 允许您在一份文档中使用不同的色彩空间。
PDF/X-4:
- 支持 PDF 1.6 及更高版本中提供的图层、透明度和其他新功能。
- 支持多种色彩空间
PDF/A
PDF/A 是 PDF 格式的子集,旨在满足电子文档长期存储的需求。与 PDF 标准不同,PDF/A 禁止使用可能在较长时间内导致文档外观出现问题的组件,这使其成为归档的理想选择。
PDF/A的主要特点:
- 内置资源。正确显示文档的所有资源(例如字体和图像)必须嵌入到文件中。
- 缺乏互动性。禁止 JavaScript、音频、视频和可执行文件等交互元素。
- 颜色稳定。文档必须使用稳定的颜色模型,以保证长期显示的一致性。
- 禁止外部依赖。您不得引用可能随时间变化或消失的外部资源。
PDF/A 子类型:
PDF/A-1:
- 基于 PDF 1.4 标准。
- 它分为两部分:PDF/A-1a 用于完全合规性,包括用于可访问性的结构标签,以及 PDF/A-1b 用于基本视觉合规性。
PDF/A-2:
- 基于 PDF 1.7 标准。
- 包括改进的对嵌入注释、图层、透明度和压缩的支持。
- 它还分为合规级别:PDF/A-2a、PDF/A-2b、PDF/A-2u。
PDF/A-3:
- 扩展 PDF/A-2,允许构建任何格式的嵌入式文件(包括 XML、CSV 或 CAD 文件)。
- 它还分为合规级别:PDF/A-3a、PDF/A-3b、PDF/A-3u。
PDF/电子版
PDF/E 是 PDF 格式的子集,专为工程、建筑和施工专业人士设计。该标准解决了共享、查看和打印动态技术文档(包括图表、绘图和 3D 图形)的需求。
PDF/E的主要特点:
- 支持复杂图形。包括图层、透明度、3D 模型和交互元素。
- 元数据。增强的元数据可改进文档内容的搜索和管理。
- 精确的几何形状。用于精确再现直线、曲线和曲面等几何对象。
- 嵌入文件。能够包含相关文件或源文件,例如规格或 CAD 数据。
为什么有这么多格式?
不同的行业有不同的需求。创建专门的 PDF 子集使我们能够满足这些需求,而无需创建全新的标准。这些配置文件可确保特定应用的标准化、可预测性和可靠性。
FastReport .NET 中是否提供这些格式?
FastReport .NET 拥有大部分导出格式,仅缺少 PDF/E。这些格式可以在设计器和应用程序代码中使用。要在设计器中选择所需的格式,请单击“保存”和“PDF 格式”。然后转到“设置”选项卡并选择所需的格式。
最后,我们将收到所需格式的所需文件。
要导出为特定格式,我们需要创建一个应用程序,连接FastReport包,并编写所需的代码。以下是如何将 PDF 另存为 PDF/A 的示例。
Report report = new Report(); report.Load("PathToYourReport.frx"); // Setting up PDF export PDFExport pdfExport = new PDFExport(); // For export to PDF/A format pdfExport.PdfCompliance=PDFExport.PdfStandard.PdfA_2a; // You can select the desired compliance level report.Prepare(); report.Export(pdfExport, "OutputPath.pdf");
尽管 PDF 子类型有很多,但每种子类型都是为了特定目的并满足特定行业的需求而开发的。选择哪种格式以及您需要它的目的完全取决于您。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)