本文介绍了线性化 .pdf 文件以及如何使用 Teigha 创建它们。
什么是线性化 .pdf 文件?线性化,也称为“快速网页视图”,是一种特殊的 .pdf 文件组织方式,使其在网络浏览器中更容易阅读。通常,.pdf 文件是一组对象,例如几何图形、文本、表单等,并使用流进行组织。这些流以任意顺序放置在文件中,并且对这些流的引用位于文档的末尾。因此,当文件通过互联网打开时,您必须等待整个文件下载完成。如果文件很小,这不是问题,但对于包含多个页面的大文件来说,这会成为问题。
如果我们将线性化应用于 .pdf 文档,它会在文档开头创建一个特殊的数据结构。该数据包含第一页和文档中其余对象的引用。因此,当文档通过网络打开时,即使其他页面仍在下载,第一页也可以几乎立即显示。如果用户转到另一个页面(使用导航栏或内部链接),该页面也可以独立于其他页面下载和显示。这使得阅读 .pdf 文件更轻松、更快捷。
何时使用线性化?如果 .pdf 文件大小很小(整个文件可以快速下载)或者它只包含一页,那么就没有必要对其进行线性化。此外,如果 .pdf 文件不打算通过网络查看,那么线性化也是没有意义的;在本地计算机上,我们已经拥有整个文件,不需要逐页增量打开。此外,在创建用于长期存档的 .pdf 文件(PDF/A 文件,在之前的博客文章中有所描述)时,不需要线性化,因为查看器需要忽略 PDF/A 文档的线性化信息。线性化最适用于通过网络(例如公司网站)查看的大型多页 .pdf 文档。
使用 Teigha 生成线性化 .pdf 文件非常简单。只需在导出前将相应的标志放入 PDFExport 参数中:
PDFExportParams params;
params.setExportFlags(PDFExportParams::PDFExportFlags(PDFExportParams::kDefault |
PDFExportParams::kLinearized));
然后导出图纸。
就是这样——生成的 .pdf 将是线性化的。要检查 .pdf 文档是否已线性化,请使用 Adobe® Reader®。只需打开文档属性:
请注意,Adobe Acrobat® 和 Adobe Reader 存在一个已知问题。如果文件大小小于约 4Kb,“快速网页视图”属性会显示为“否”,即使 .pdf 文件已线性化。然而,如前所述,对小型 .pdf 文件使用线性化是没有意义的,因此大多数用户不会受到此问题的影响。