摘要:要在PDF中搜索某个关键词,结果发现啥也找不到?这种情况大多数人都遇到过吧,特别是处理扫描文档或图片PDF时。就在前几天,我还在为这事抓狂呢!后来无意中发现了OCRmyPDF这个宝藏项目...简直就是救命稻草啊!
要在PDF中搜索某个关键词,结果发现啥也找不到?这种情况大多数人都遇到过吧,特别是处理扫描文档或图片PDF时。就在前几天,我还在为这事抓狂呢!后来无意中发现了OCRmyPDF这个宝藏项目...简直就是救命稻草啊!
OCRmyPDF是一款强大的命令行工具,它能给PDF文件加上"隐形"文本层。说白了,它会用OCR技术识别你的PDF中的文字,然后把这些文字藏在图像下面,这样你就能搜索、复制这些内容了,而且外观完全不变。
最厉害的是,它不像其他OCR工具那样会生成一个全新的PDF(经常会搞乱排版),OCRmyPDF是直接在原PDF上添加文本层。处理过的PDF大小甚至可能比原文件更小!这点我真是惊了...
与其他OCR工具的最大区别是OCRmyPDF不仅仅是封装了Tesseract(一个流行的OCR引擎),它还能:
• 保持原PDF中已有的文本层不变,只处理没有文本的部分
• 自动修正页面倾斜问题,提高识别准确率
• 支持多种语言识别(包括中文!)
• 可以处理数字签名和表单
• 通过优化图像减小输出文件大小
我试过处理一份40页的扫描合同,用它处理后不仅能全文搜索了,文件体积还从15MB变成了9MB。对于经常需要归档和搜索大量PDF的人来说,这简直太棒了!
老实说,最开始我还不太相信它有多好用,直到我拿它处理了几个实际问题:
1. 把公司几年的扫描发票全部OCR化,财务查账时间从以前的几小时变成了几分钟
2. 处理学术论文库,让研究资料可以通过关键词快速定位
3. 批量处理老旧的扫描文档存档
这玩意真的会让你的工作效率暴增,尤其是对于经常跟PDF打交道的人。
想试试?超级简单:
在Ubuntu/Debian系统上:
apt-get install ocrmypdfMac用户可以用Homebrew:
brew install ocrmypdfWindows用户需要多几步,但也不复杂...可以通过WSL或者直接用官方提供的Docker镜像。
基本用法极其简单:
ocrmypdf input.pdf output.pdf就这么简单!程序会自动判断是否需要OCR,然后处理好一切。不过如果你想调整参数,还有超多高级选项:
# 指定语言为中文ocrmypdf -l chi_sim input.pdf output.pdf
# 提高图像质量以获得更好的OCR结果
ocrmypdf --deskew --clean input.pdf output.pdf
如果你像我一样需要批量处理成百上千的PDF文件,OCRmyPDF提供了非常友好的批处理能力。你可以写个简单的脚本,一次性处理整个文件夹:
importosimportsubprocess
forpdfinos.listdir('./input_folder'):
ifpdf.endswith('.pdf'):
subprocess.run([
'ocrmypdf',
'--deskew',
f'./input_folder/{pdf}',
f'./output_folder/{pdf}'
])
此外,对于那些需要集成到其他系统的场景,OCRmyPDF还提供了Python API,可以直接在你的Python项目中调用。
来源:opendotnet