如何使用报表工具FastReport VCL 设计器中的 PDF/A?
Fastreport是目前世界上主流的图表控件,具有超高性价比,以更具成本优势的价格,便能提供功能齐全的报表解决方案,连续三年蝉联全球文档创建组件和库的“ Top 50 Publishers”奖。
慧都科技是Fast Reports在中国区十余年的友好合作伙伴,连续多年被Fast Reports授予中国区Best Partner称号。
今天我们将向您介绍 FastReport VCL 的导出选项,我们的开发团队在每次更新时都会添加许多新功能。我们早在 2017 年就添加的导出格式,今天我们来一起讨论 PDF/A 及其功能。
众所周知PDF文档格式很早以前就出现了,并且深受大众喜欢,因为我们可以在无论Windows、Linux、iOS等任何平台上创建和打开这些文档。这一优势促进了使用 PDF 来存档文档。然而,并非所有文件都适合存档。然而,并不是所有的文件都适合归档。例如,如果你的文件包含链接,使用特定的字体(不嵌入在文件本身),或多媒体数据,这个文件就不是独立的。
PDF/A 标准是专门为归档文档而开发的,它还被认证为常规 PDF(ISO 19005-1:2005 标准),那么PDF 和 PDF/A 有什么区别呢?
PDF/A 格式的主要要求是保证文件在几年后可以以相同的形式再现。首先,这是由文档的自包含性确保的,意味着文档必须包含所有必要的数据(文本、光栅和矢量图像、字体和颜色数据)并且没有外部链接。
让我们按顺序看一下文档应该包含和不应该包含的内容。
以下是被禁止的:
- 从 JavaScript 代码启动可执行文件;
- 使用音频和视频内容;
- 使用外部引用;
- 加密文档。
- 在文档中嵌入字体;
- 使用以与设备无关的方式指定的颜色数据。
由于包含所有数据,PDF/A 文档将比 PDF 稍大。
创建模板后,让我们切换到完成报表的预览模式。在左上角找到导出为 PDF。

1B 级一致性仅要求遵循可靠再现文档视觉外观所必需的标准,而 1A 级一致性包括所有 1B 级要求以及旨在提高文档可访问性的功能。
- 额外的 1A 级要求:
- 语言规范。
- 分层文档结构。
- 图像和符号的标记文本跨度和描述性文本
- 到 Unicode 的字符映射
A 级一致性旨在通过允许辅助软件(例如屏幕阅读器)更精确地提取和解释文件内容,来提高身体受损用户对一致性文件的可访问性
PDF/A-2 标准 (ISO 19005-2)
PDF/A-2 解决了 PDF 版本 1.5、1.6 和 1.7 添加的一些新功能。PDF/A-2 与 PDF/A-1 具有向后兼容性,这意味着所有 PDF/A-1 文档都必须与 PDF/A-2 兼容。但是,PDF/A-2 不一定符合 PDF/A-1。PDF/A-2 基于 PDF 1.7(如 ISO 32000-1 中所定义),它支持一些工作流程增强功能,例如 JPEG2000 压缩、透明效果和图层、OpenType 字体嵌入以及符合 PDF Advanced 的数字签名规定电子签名
PDF/A-2 还允许使用单个文件归档文档集。
PDF/A-2 具有以下合规级别:
- PDF/A-2a 满足 ISO 19005-2 规范中的所有要求;
- PDF/A-2b 是较低级别的合规性。它涵盖了标准对文档外观的要求,而不是其结构和语义属性。
PDF/A-3 标准 (ISO 19005-3)
PDF/A-3 在一个重要方面不同于 PDF/A-2:它允许嵌入。此外,它不仅可以是其他 PDF/A(PDF/A-2 支持),还可以是任何其他文件。这对于存档至关重要。与 PDF/A-2 一样,PDF/A-3 标准定义了三个合规级别:
- PDF/A-3a PDF/a-3A 符合 ISO 19005-3 规范的所有要求。
- PDF/A-3b 满足确保文档在长期保存期间以其原始形式显示的最低要求。
那么,让我们看看如何按照PDF/A标准导出。我们将看到一个导出设置窗口。转到“选项”选项卡。这是我们可以选择 PDF/A 标准的地方。请注意,下拉列表中有 4 个标准:PDF/A-2a、PDF/A-2b、PDF/A-3a 和 PDF/A-3b。这里没有 PDF/A-1,因为它被认为已过时。

让我们回顾一下所有的导出属性。
页面范围— 选择将导出为 PDF 的文档页面。
PDF 标准— 选择 PDF 规范(常规或 PDF/A)。
PDF 版本——现在不可用,因为我们正在谈论 PDF/A,但是从 1.4 到 1.7 的 PDF 导出版本将以常规规范提供。
Compressed — 确定是否应压缩报表数据的属性。
嵌入式字体——此属性在 PDF/A 中将被禁用,因为标准不支持使用任何字体。
背景— 允许用户在报告中制作没有水印的背景。
打印优化— PDF 可以针对打印进行优化,从而提高图像质量,但它们的尺寸会变大。
Outline — 启用或禁用大纲显示的属性。
Transparency — 属性负责显示对象的透明度。

这是添加到 PDF 文件的内部信息的部分:标题、作者、主题、关键字(您可以将 PDF 上传到网络,它们有很好的索引)、PDF 创建者和文档制作者。

这是添加到 PDF 文件的内部信息的部分:标题、作者、主题、关键字(您可以将 PDF 上传到网络,它们有很好的索引)、PDF 创建者和文档制作者。


如何从 Delphi 或 Lazarus 代码生成 PDF/A
procedure TForm1.Button1Click(Sender: TObject);
begin
{Generate a report. We must generate a report before exporting}
frxReport1.PrepareReport();
{Set the range of exported pages. All pages of the generated report are exported by default}
frxPDFExport1.PageNumbers := '2-3';
{Set the PDF standard TPDFStandard = (psNone, psPDFA_1a, psPDFA_1b, psPDFA_2a, psPDFA_2b, psPDFA_3a, psPDFA_3b); Adding frxExportPDFHelpers module to the uses list is required: uses frxExportPDFHelpers;}
frxPDFExport1.PDFStandard := psNone;
{For PDFStandard = psNone you can set the version of the PDF standard TPDFVersion = (pv14, pv15, pv16, pv17); Adding frxExportPDFHelpers module to the uses list is required: uses frxExportPDFHelpers;}
frxPDFExport1.PDFVersion := pv17;
{You can set compression for a smaller file size}
frxPDFExport1.Compressed := True;
{Set whether fonts should be embedded in the resulting document. Font embedding significantly increases the size of the resulting document}
frxPDFExport1.EmbeddedFonts := False;
{Set whether to export the background image of the page}
frxPDFExport1.Background := True;
{Disable the export of print optimized objects.}
{When the option is enabled, the image quality will be better, but they will be 9 times larger}
frxPDFExport1.PrintOptimized := False;
{Set whether the resulting PDF will include an external table of contents, as in the original report}
frxPDFExport1.Outline := False;
{Set whether to export images with transparency}
frxPDFExport1.Transparency := True;
{You can set the desired DPI for images. Enabling this option disables the SaveOriginalImages function,}
{which allows saving images in their original form.}
frxPDFExport1.PictureDPI := 150;
{Set compression ratio of raster images}
frxPDFExport1.Quality := 95;
{Set whether to open the resulting file after export}
frxPDFExport1.OpenAfterExport := False;
{Set whether to display export progress (show which page is currently being exported)}
frxPDFExport1.ShowProgress := False;
{Set whether to display a dialog box with export filter settings}
frxPDFExport1.ShowDialog := False;
{Set the name of the resulting file. Note that if you do not set a file name and disable the export filter dialog window,}
{the dialog will still be displayed for file name selection.}
frxPDFExport1.FileName := 'C:\Output\test.pdf';
{Fill in the corresponding fields of the Information tab}
frxPDFExport1.Title := 'Your Title';
frxPDFExport1.Author := 'Your Name';
frxPDFExport1.Subject := 'Your Subject';
frxPDFExport1.Keywords := 'Your Keywords';
frxPDFExport1.Creator := 'Creator Name';
frxPDFExport1.Producer := 'Producer Name';
{Fill in the corresponding fields of the Security tab}
frxPDFExport1.UserPassword := 'User Password';
frxPDFExport1.OwnerPassword := 'Owner Password';
frxPDFExport1.ProtectionFlags := [ePrint, eModify, eCopy, eAnnot];
{Set up viewer settings (Viewer tab)}
frxPDFExport1.HideToolbar := False;
frxPDFExport1.HideMenubar := False;
frxPDFExport1.HideWindowUI := False;
frxPDFExport1.FitWindow := False;
frxPDFExport1.CenterWindow := False;
frxPDFExport1.PrintScaling := False;
{Export the report}
frxReport1.Export(frxPDFExport1);
end;
本次FastReport使用教程中关于如何使用FastReport VCL 设计器中的 PDF/A的相关内容就到这里了,更多教程进入慧都官网查看。

今天我们将向大家介绍 报表工具FastReport VCL 的导出选项功能—— PDF/A。
浙公网安备 33010602011771号