编辑之后,究竟保留了什么
PDF并不是单一的东西。除了可见的页面内容,它还带有大纲(书签)、表单字段及其填写的值、供屏幕阅读器使用的标签结构、文件附件、数字签名和文档元数据。大多数在线工具会悄悄丢掉其中好几项,而您要到事后才会发现。
下面说说我们的工具是怎么做的,分界线比您想象的更清晰。合并、拆分和提取页面都会新建一个文档,再把页面复制进去。 凡是*位于页面上*的内容都会原样保留——文字、图片和矢量图形都是直接复制,绝不重新压缩或缩放,所以页面在视觉上完全一致。但凡是位于*文档*层级的内容都会被留下:书签大纲、表单字典、屏幕阅读器所依据的标签结构、文档语言,以及标题和作者字段。因此,合并或拆分后的文件完全没有书签——既没有第一个文件的,也没有任何其他文件的——表单的方框可能仍会显示,却已不再是可填写的字段。如果保留大纲很重要,qpdf在合并时会保留主文档的目录结构;而任何在浏览器中运行的工具都做不到。
输入文件之间也不会共享资源,这解释了一个让人意外的结果:合并两份嵌入了同一种字体的报告,这种字体会被嵌入两次,所以合并后的文件大致等于各部分之和,而不会更小。旋转是上述一切的例外——它会载入文档再重新保存,而不是新建一个,只修改页面的旋转属性,所以它是无损、可逆的,并能完整保留大纲、表单、标签和元数据。
压缩是唯一需要有所取舍的操作,而且它会坦白取舍的是什么:图片以较低质量重新编码,文字和矢量图形则保持不动。这就是为什么压缩一份纯文字报告几乎省不了多少空间,而压缩一本扫描版宣传册却可能省下90%。
数字签名在任何编辑之后都会失效——这是设计使然。签名覆盖的是文档的每一个确切字节,所以对已签名的PDF进行合并、拆分、旋转或压缩,都会使签名失效。这是格式在正常工作,而不是工具的缺陷,世界上任何PDF编辑器都无法避免。