don*_*oey 27 pdf software-recommendation ocr
我有许多 pdf 格式的扫描文档,我希望能够搜索它们。我怎样才能做到这一点?
本质上,我必须对 pdf 进行 OCR,然后将提取的文本混合回新的 pdf。我尝试了许多不同的解决方案(包括将 OCR 信息添加到 PDF 中找到的解决方案),但均未成功。
是否有我不知道的软件包?或执行此操作的脚本?
don*_*oey 21
从 Ubuntu 16.04 开始,OCRmyPDF 已通过 apt 提供。赶紧跑
sudo apt install ocrmypdf
ocrmypdf -h # to see the usage
Run Code Online (Sandbox Code Playgroud)
最后,您可以使用以下命令对您的 pdf 进行 OCR:
ocrmypdf input.pdf output.pdf # change input and output to the files you want
Run Code Online (Sandbox Code Playgroud)
如果命令似乎没有响应,您可以使用-v
标志增加详细程度(可以增量使用-vv
或-vvv
)。最好先在较短的 pdf 上测试结果。您可以按如下方式缩短 pdf:
pdftk A=input.pdf cat A1-5 output output.pdf
Run Code Online (Sandbox Code Playgroud)
如果您有任何问题,请查看新的 Github Repo。
@don.joey 用ocrmypdf脚本回答。但是,现在可以直接安装(从 16.10 开始)。
sudo apt install ocrmypdf
Run Code Online (Sandbox Code Playgroud)
然后你必须安装你需要的tesseract语言。
要列出系统中已经存在的语言,请键入:
tesseract --list-langs
Run Code Online (Sandbox Code Playgroud)
如果您错过了一个,请安装它。例如,
sudo apt install tesseract-ocr-spa
Run Code Online (Sandbox Code Playgroud)
现在您可以使用以下命令生成可搜索的 PDF(其质量会有所不同,具体取决于扫描的文档)
ocrmypdf -l 'spa' old.pdf new.pdf
Run Code Online (Sandbox Code Playgroud)
当然,您可以查看其手册页以获取一些其他选项。
小智 5
pdfsandwich
正是执行这项工作。我不知道软件中心提供了一个软件包,但我在项目网站上为其提供了 Ubuntu deb 软件包(有关详细信息,请参阅http://www.tobias-elze.de/pdfsandwich/),包括当前最新版本 (0.1.2),该版本不太可能出现在任何软件中心中。
如果您有扫描文件scanned_file.pdf
,只需致电
pdfsandwich scanned_file.pdf
Run Code Online (Sandbox Code Playgroud)
它会生成文件scanned_file_ocr.pdf
,并将已识别的文本添加到扫描的页面中。
与大多数现有解决方案相比,它会自动检测安装的超立方体版本并相应地调整其行为。此外,它在 OCR 处理之前对扫描图像进行预处理,例如去偏或去除暗边缘等,这可以显着提高光学字符识别。
免责声明:我是 的开发者pdfsandwich
,因此有很大的偏见。