详解在转换为PDF格式时,如何优化报表文件
在本文中,我们将讲解关于FastReport.Net中的PDF导出。具体而言,是导出的文件大小。最终生成文件的大小受多种因素影响:图像质量、嵌入的字体、曲线字体、背景图像等等。
我们来看看导出设置窗口:
首先,你可以设置标准的PDF文件。这也影响最终的大小,因为标准PDF / A和PDF-X必然包含嵌入字体。
“嵌入字体”选项允许你在最终文档中包含报表中使用的字体。这稍微增加了最终文件的大小,但能够确保文本以与报表中相同的形式显示。如果字体样式不重要,那么可以跳过这个选项,以减小文件的大小。
“背景”选项即在PDF文档中包含报表的背景。这回增加文件的大小。
“曲线文本”选项将启用使用矢量图元(TrueTypeFonts)绘制字符的模式。这确保了在缩放时保留字符的视图和宽高比。但是,该选项会显着影响PDF文档的大小。以大型格式打印文档时,例如在绘图仪中使用此选项是合理的。
我们接着看看与图形相关的选项。
色彩空间:有RGB和CMYK两种色彩构成可选。前者用于电视,后者用于印刷。使用CMYK方案会增加文件大小。如果在打印时保持准确的颜色很重要,请使用此选项
“原始分辨率”选项允许你以原始分辨率保存图像。基于“独创性”的原则,报表中的图像不能旋转,只允许缩放。如果你想使用PDF文档传输原始图像,则此选项适用。该选项也可以用于打印。根据原始图像的分辨率,该选项会显着增加生成的PDF文档的大小。
“打印优化”选项会在创建PDF文档时,使用来自报表的图像。除了位图之外,还有一些对象在PDF的导出阶段转换为图像 - 这些对象包括条形码、地图、图表和其他一些对象。
默认情况下,所有这些对象都以屏幕分辨率呈现。当你的文档放大时,这会导致细节减少,并且打印在纸张上时也很明显。另外,这可能导致条形码在扫描仪上的可读性差。
为了避免这个问题,可以使用“打印优化”选项。当你启用该选项时,以上对象将绘制在比正常屏幕大几倍的画布上。然后这些图像被放置在PDF文档中。
这解决了条形码的可读性问题,以及图表和地图的外观的问题。
图像以更高的分辨率形成,因此在缩放时它们具有可视化的余量。
这种渲染图像的方法的缺点是它们的大尺寸,这增加了PDF文件的大小。
“Jpeg压缩”选项与所有其他选项不同,它旨在减少文档大小。与原始图像不同的是,你可以设置图像质量的百分比。如果文档中图像的原始质量对你而言是多余的,则可以使用此选项。也就是说,如果你并不需要高质量的图片,该选项可以大大减少文档的大小。
现在我将给出用不同的PDF标准和选项来测量文件大小的结果。我使用了FastReport.Net交付的一个演示报表 - 简单列表。每次测量都启用了单个选项,没有组合。让我们以KB为单位看看这些PDF文档的大小:
标准 | 什么都不选 | 嵌入字体 | 背景 | 曲线文本 | RGB | CMYK | 原始分辨率 | 打印优化 | Jpeg压缩95 | 背景、颜色和纹理 |
PDF 1.5 | 424 | 550 | 425 | 1652 | 424 | 438 | 627 | 4332 | 112 | 437 |
PDF / A | - | 558 | 558 | - | 558 | 944 | 760 | 4465 | 245 | 570 |
PDF-X | - | 551 | 551 | 1652 | 551 | 952 | 756 | 4450 | 238 | 564 |
如上所述,PDF / A和PDF-X默认嵌入了字体,因此第一列不包含它们。如果将所有三种标准按嵌入字体进行比较,则尺寸最大的是PDF / A。
你可能已经注意到了,启用“背景”选项并没有影响文档大小。这是因为该报表本来就没有背景。所以我单独做了测量,改变了报表的背景,并获得了很好的数据(见最后一栏)。
下一个选项“曲线文本”,并不适用于PDF / A。至于PDF1.5和PDF-X,两者文件大小是相同的,而且比前一列的值要大上3倍。所以,最好仔细思考一下这个选项对你是否有必要。
色彩空间RGB是默认选择的,所以大小与第一(第二)列的大小相同。至于CMYK,文件大小更大, 尤其是PDF / A和PDF-X。这是由于使用了ICC颜色配置文件。
现在看看“原始分辨率”选项,PDF文件包含报表的原始图像。在这一列的三个指标中,最小的是PDF 1.5。但是这只是因为另外两个嵌入了字体。所以所有的值其实大致相等。
这适用于其他参数。PDF文件1.5小于嵌入字体的准确数量。
现在我们看看“打印优化”列。文件大小比初始文件(无选项)大8倍!我们已经知道这是由于文档中图像的高分辨率。
前文已经提到过,“Jpeg压缩”可以显着减小文件大小。它确实可以。就PDF 1.5而言,只有112字节,比起最初的424小了几乎4倍!如果我们的报表只包含图片,对比会更明显。
从上表中可以清楚地看出哪些选项应该谨慎使用。例如,如果没有特殊需要,最好不要使用“打印优化”选项和“曲线文本”选项。使用嵌入字体不会大大影响文档的大小,但对于保留预期类型的??文档很有用。在不需要高质量图形的报表中,使用“Jpeg压缩”比较合适。如果报表打算打印并包含照片图像,则CMYK配色方案比较合适。
推荐阅读
- FastReport VCL报表控件开发者手册
- FastReport Online Designer中文手册
- Fastreport.Net教程2016
- Fastreport.Net用户手册
- FastReport.Net教程2017(持续更新中···)
- FastReport Online Designer教程2017(持续更新中···)
- 报表教程2017(持续更新中···)
- FastReport.Net v2018.1版本更新已经发布!