扫描版 PDF 与文字版 PDF
两份 PDF 在屏幕上可能看起来完全一样,内部却截然不同。一种是对文字与图形的描述,另一种是纸张的照片。人们在 PDF 上遇到的绝大多数麻烦,都可以追溯到不知道自己手上拿的是哪一种。
两种 PDF
文字版 PDF(也称数字版或原生 PDF)是软件直接导出的产物:文字处理软件、电子表格、设计工具、浏览器的打印功能都属此类。文件中包含真正的字符、用于绘制它们的字体,以及线条与图形的矢量指令。其中没有任何一张页面照片。
扫描版 PDF 则是包裹照片的容器。扫描仪或手机相机把每一张纸拍成位图,PDF 再以每页一张的方式把它们包起来。从文件的角度看根本没有文字,只有一格格彩色的点,恰好在人眼里看起来像字。
混合型文档很常见,也最容易让人困惑。一份从文字处理软件干净导出的合同,打印、签字、扫描,再与附件合并之后,同一个文件里就会同时存在两种页面。
几秒钟分辨出来
最快的办法是用鼠标选中一行正文。如果选区整齐地跟着文字走,这一页就是文字页;如果什么都没高亮,或者一个蓝色矩形一次性盖住整页,那就是图片页。
搜索同样有效。挑一个清楚可见的词搜一下。文字版 PDF 会立刻找到,扫描件则什么也找不到——因为根本不存在可供查找的东西。
第三种方法是放大,也最为确凿。由字体绘制的文字每次都会重新绘制,放到多大都保持锐利;扫描页则会散成可见的像素,若曾用 JPEG 压缩,字母周围还会出现柔软的晕影。
扫描件为何大得多
以字符方式存储的页面极为紧凑。字母本身只有几 KB,而字体无论多少页使用都只在整份文档中存一次。一份五十页的报告完全可能不到 1 MB。
同一页以 300 DPI 扫描约为 870 万像素。即便压缩过,彩色状态下通常每页也要 1 到 3 MB,而且由于照片之间无法共享任何内容,这份开销要在每一页上重复。扫描版合同往往比它打印自的那份文档大上百倍,原因就在这里。
扫描设置会让差距变得极端。同一张纸以 200 DPI 黑白扫描可能只有 40 KB,以 600 DPI 彩色扫描却可能达到 10 MB。多数办公扫描仪的默认设置,都远高于文档实际所需。
OCR 究竟做了什么
光学字符识别会读取扫描图像中的形状,并推测它们代表哪些字符。通常的产物是“可搜索 PDF”:原始照片原封不动地保留,上面再覆盖一层不可见的文字,与可见的词语对齐。
这一点值得弄清楚,因为它意味着 OCR 并没有把扫描件变成文字版 PDF。页面依然是一张图片,体积一样大,一样模糊。改变的只是搜索与复制现在能用了——它们是通过触及下面那层隐藏文字实现的。
这也意味着 OCR 的错误是看不见的。某个字符被误识别后,屏幕上看起来完全正确,因为你看到的是原始照片,但它搜索不到,复制出来也是错的。在低分辨率、倾斜、手写体和特殊字体的情况下,识别质量会迅速下降。
转换成图片时的差别
对文字版 PDF 来说,转换成图片是一次真正的渲染。字符与矢量会按你指定的分辨率重新绘制,因此提高倍率确实会增加细节,输出可以做到任意清晰。
对扫描版 PDF 来说,没有可增加的细节。页面本身已经是固定分辨率的图像,放大渲染只是把原有的像素撑大。如果一份扫描件是以 150 DPI 采集的,按 600 DPI 导出只会得到一个更大、更糊的文件,别无其他。
实用原则是贴合扫描件的分辨率而不要超过它。先用中等倍率试一次,看看结果,只有在文字确实变得更清晰时才继续提高。一旦提高倍率不再改善可读性,就说明已经达到原图的分辨率,再往上全是浪费的字节。