让扫描版PDF可以搜索文字的方法
发布于:

你打开一份扫描的合同,按下 Ctrl+F 想找某个条款,结果一条都搜不到,可那个词明明就在屏幕上。或者你想从扫描的对账单里复制一个账号,光标却只是在整页上画出一个蓝色方框。这个文件看起来像文档,但在电脑眼里,它只是一组照片。
光学字符识别,也就是OCR,可以解决这个问题。在这篇指南里,我们会解释OCR到底对PDF做了什么、我们是怎么操作的、如何获得准确的结果,以及有了可搜索的文件之后还能做些什么。
扫描版PDF为什么无法搜索
扫描仪或手机App生成PDF时,会把每一页存成一张图片。从Word导出的PDF则不同,它包含真正的字符,所以你可以搜索和选中文字。扫描页上只有排列成字母形状的像素,却没有真正的文字。
一个小测试就能分辨你手上的是哪一种:试着选中一个单词。如果能单独把它高亮,这个PDF已经有文字了。如果整页被当作一整块选中,或者什么反应都没有,那它就是扫描件,需要OCR。
OCR对你的PDF做了什么
OCR会分析每一页的图像,识别出其中的字符,并把它们作为一个不可见的文字层,直接放在你看到的文字下方。页面外观和之前一模一样,但搜索、复制粘贴和屏幕阅读器现在都能用了,因为底下有了真正的文字。
pdfdots 的「PDF文字识别」使用 Tesseract,一个成熟的开源识别引擎,并在你的浏览器中运行。你的文件不会被上传。唯一需要下载的是所选语言的语言模型,大约10到20 MB,浏览器会把它缓存下来,之后再用会启动得更快。你只需要一个免费账户,没有广告,也没有水印。
对扫描版PDF进行OCR的具体步骤
操作只需点几下,然后在识别页面时耐心等一会儿。
- 打开「PDF文字识别」,把扫描文件拖进上传框,或者点击选择文件。
- 选择文件的语言:英语、土耳其语、西班牙语、葡萄牙语、德语或法语。
- 点击「运行OCR」,等待每一页识别完成。普通电脑上每页需要几秒钟,手机上会更久一些。
- 下载可搜索的PDF,用 Ctrl+F 或 Cmd+F 测试一下。
如何获得准确的识别结果
OCR的质量主要取决于扫描件本身。干净、端正、光线均匀的页面效果非常好。模糊的手机照片、歪斜的页面、极小的字号和花哨的装饰字体则会导致更多错误,而手写字基本无法可靠识别。
- 选对语言。这能明显提升对带重音符号的字母和常用词的识别效果。
- 先把歪的页面摆正。如果某页是横着或倒着的,运行OCR之前先用「PDF旋转」纠正。
- 精简长篇扫描件。如果一份300页的档案里你只需要几页,先用「PDF提取页面」把它们取出来,能省下大量等待时间。
- 能重扫就重扫。如果某一页识别出来满是奇怪的字符,一份更清晰的扫描件比什么方法都管用。
输出文件为什么变大了,该怎么办
识别之前,每一页会以大约 200 DPI 重新渲染,渲染出的图像会和文字层一起写入新文件。因此,可搜索的PDF往往比原始扫描件更大。如果需要通过邮件发送,或者上传到有大小限制的地方,之后再用「PDF压缩」处理一下即可。文字层在压缩后依然保留,文件仍然可以搜索。
为旧文件建立一个可搜索的档案库
把OCR用在一整批文件上时,它的价值才真正体现出来。我们曾把好几箱旧信件、保修卡和税务文件变成一个可搜索的PDF文件夹,现在要找几年前的某张发票,只需要搜索一下,而不用在储藏室里翻上一下午。

我们的流程很简单。每份文件单独扫描成一个PDF,或者成批扫描后用「PDF拆分」分开。然后对每个文件运行OCR,起一个描述性的文件名,按年份存进不同文件夹。Windows 和 macOS 都会索引PDF的文字层,所以即使某个名字或金额只出现在第七页,系统级搜索也能找到对应的文件。
旧文件的识别准确率参差不齐。褪色的热敏小票和复写纸副本对任何引擎来说都很难,所以对于真正重要的文件,我们还会在文件名里简单记下关键信息。
有了可搜索的PDF之后还能做什么
文字层就位之后,能做的事情就多了。「PDF转TXT」可以把识别出的文字导出为纯文本文件,方便引用或导入其他软件。「PDF对比」可以找出扫描合同两个版本之间的差异。
OCR之后再转换成可编辑格式,效果也会好得多。「PDF转Word」和「PDF转Excel」在我们位于德国的转换服务器上运行,文件处理完后会立即删除;当PDF里已经是真正的文字而不是文字的图片时,转换结果会干净得多。
常见问题
进行OCR时扫描的PDF会被上传吗?
不会。OCR完全在你的浏览器中运行,只有语言模型需要下载一次,你的文件始终留在你的设备上。
OCR之后页面外观会变吗?
不会。识别出的文字作为不可见图层放在页面图像下方,所以页面看起来完全一样。
OCR能识别手写字吗?
无法可靠识别。它最适合清晰、端正的扫描件中的印刷文字。
OCR为什么这么慢?
识别是在你自己的设备上进行的,每页需要几秒钟,所以长文件需要一些耐心。只提取需要的页面可以加快速度。
「PDF文字识别」支持哪些语言?
英语、土耳其语、西班牙语、葡萄牙语、德语和法语。开始之前请选择文件对应的语言。