扫描版 PDF vs 文本版 PDF:为什么有的文档转得出来,有的什么都没有
关于 PDF 转换最常见的求助,几乎都是同一句话的变体:“我把 PDF 拖进去了,出来一个空文件。”绝大多数情况下,这份 PDF 是扫描件:包在 PDF 容器里的页面照片,里面一个字符都没有。
这篇文章讲清楚 PDF 的两种类型、两秒钟判断你手里是哪一种的测试方法、为什么转换器不做 OCR 是设计决策而非功能缺口,以及把扫描文档照样变成 Markdown 的完整工作流。
每个 PDF 都是两种之一
文本版 PDF 带着文本层:字符以字符码的形式存储,附带字体和位置信息,就像文字处理软件导出的那样。从 Word、LibreOffice、Google Docs、LaTeX 或大多数报表软件导出的文档都是文本版,哪怕里面也含图片。
纯图片 PDF 是一串页面照片,套着 PDF 的壳。扫描仪产出它们,手机扫描 App、传真转邮件的网关、会把文件发给自己邮箱的复印机也产出它们。像素就是全部内容;里面没有字符。
混淆情有可原,因为肉眼分不出这两者。扫描版 PDF 在阅读器里打开、显示清晰的文字、支持缩放——却不包含一个字符码。你看到的文字,是文字的照片。
两秒钟的测试
用任意阅读器打开 PDF,试着用鼠标选中一句话。如果选区逐词高亮、复制到文本编辑器能得到真正的文字,这份 PDF 是文本版,任何转换器都能读。
如果点按拖动画出的是截图式的矩形选框而不是文字高亮,这份 PDF 是扫描件。选不中是因为根本不存在可选的东西。复制命令同样一无所获,理由相同。
文件大小是粗糙的辅助信号:十页的文本版 PDF 往往不到 1MB,十页 300dpi 的扫描件往往几十 MB。但选定测试才是决定性的——图片压缩方式差异太大,单看大小不可靠。
为什么任何转换器都绕不开 OCR
转换器读的是文件里装的东西。对文本版 PDF,那是字符码,能干净地映射成 Markdown 文本。对纯图片 PDF,那是像素,而像素在任何意义上都不是 Markdown writer 能输出的文本。
填补这道鸿沟需要光学字符识别:一个看着每个字形的图像、猜测它描绘的是哪个字符的模型。OCR 是一个庞大且专门化的领域——按文种调校的识别模型、版面分析、置信度评分——往转换器里塞一个平庸的 OCR,产出的是看起来通顺、却在最要命的地方出错的文本:数字、姓名、法律术语。
所以本站的转换器只读文本层、拒绝对像素瞎猜,会告诉你哪些页面没有可提取文本,而不是交出一份看起来笃定、却充满识别错误的文档。一份错误的文档,比一次拒绝更贵。
OCR 到底在做什么,又会在哪里失败
OCR 软件把页面图像切成行和词,对每个词的字符做分类,然后写出新的、带文本层的 PDF 或纯文本——通常保留原图用于显示,把识别出的文本不可见地叠在上面。桌面工具如 Adobe Acrobat 自带的识别、基于 Tesseract 的开源 ocrmypdf,都做得不错。
各家引擎的失败模式高度一致。视觉易混的字形——大写 I、小写 l、数字 1——会错分,而且拼写检查抓不住。低分辨率扫描、歪斜的页面、淡的复印件、手写体,识别质量都会下滑。表格又是最糟糕的情形:OCR 按阅读顺序读出单元格文本,却重建不出任何网格。
语种也有影响:识别模型按文种各司其职,混语文档会在少数语种上劣化。这些不是说 OCR 没用,而是说 OCR 的产出是草稿,值得用你核对转换表格的同一份认真去验证。
为什么本工具拒绝瞎猜
转换器遇到没有文本层的页面时,既不返回垃圾,也不返回空——它会告诉你。转换结果里包含一条警告,列出看起来需要 OCR 的页码;如果整份文档都没有文本,错误信息会直说。
这是本地工具的诚实契约:对自己读到了什么精确,对自己读不到什么明说。另一种做法——静默的部分输出——正是某一章凭空消失却被发布、未签字的合同被归档为完整版本的由来。
这个设计还让工具保持轻快。哪怕只带一个文种的 OCR 模型,体积都会远超解析引擎本身;把它们塞进浏览器,下载体积会成倍膨胀,换来的却是桌面软件本来就能做得更好的能力。
先修扫描件,再谈转换
扫描文档的工作流是先 OCR、后转换。把文件丢进你选的 OCR 软件——Acrobat 内置识别、命令行的 ocrmypdf、或开启识别功能的手机 App 导出——它产出一份可搜索、带文本层的 PDF。
然后转换这份产出。转换和识别是两个独立的质量环节,保持成两个可分别检查的阶段,意味着你可以在任何下游消费之前,先在文本编辑器里核对 OCR 的结果。
一个提醒:OCR 设置里选择保留原始页面图像、叠加文本层,而不是重新渲染页面,这样可搜索 PDF 才忠实于扫描原件。之后就是常规的转换质量建议,外加一条——OCR 过的表格需要和所有转换表格一样的抽查,甚至加倍,因为识别错误和结构错误可能叠加。
混合型 PDF:部分结果
真实文档常常是杂交的:文本版报告附一页扫描的签字页、合同带一份复印的附件、论文正文里嵌着扫描的插图。转换会逐页处理——文本页转换,图片页什么也不产出并在警告里标记。
读输出之前先读警告列表。它精确告诉你文档的哪些部分缺席,于是部分结果可以和另行 OCR 的页面合并,而不是被误当成完整文档。
这个混合场景正是“警告式设计”最有力的论据:一份文档转出百分之八十够不够,工具不替你决定。它把边界精确地报告出来,把判断和 OCR 这一步留在它们该在的地方——你手里。