需要一个解决方案来将每个页面都是图像且页面可以包含文本、表格或两者的组合的 PDF 文件转换为可搜索的 pdf。
我已经使用了 ABBY FineReader Online,它做得非常好,但我正在寻找一个可以通过 Windows Python
实现的解决方案我已经做了详细的分析,下面是接近我想要的但不完全是的链接:
说明使用Ghost脚本首先将其转换为图像,然后直接转换为文本。我不相信 tesseract 将不可搜索的 PDF 转换为可搜索的 PDF。
上述解决方案有相反的帮助,即将可搜索转换为不可搜索。我也认为这些在 Ubuntu/Linux/MacOS 中是有效的。
有人可以帮忙告诉一下在Windows Python中实现不可搜索到可搜索的Python代码应该是什么吗?
更新1
我使用 Asprise Web Ocr 得到了想要的结果。以下是链接和代码:
https://asprise.com/royalty-free-library/python-ocr-api-overview.html
我正在寻找一种可以通过Windows Python库完成的解决方案,仅作为
更新2
我知道将不可搜索的pdf直接转换为文本的解决方案。但我正在寻找他们将不可搜索的 PDF 转换为可搜索的 PDF 的任何方法。我有使用 PyPDF2 将 PDF 转换为文本的代码。
实际上您并不需要将 pdf 中的所有内容转换为文本。文本将保留文本,表格将保留表格,如果可能的话,图像应变为文本。 您需要一个能够按原样实际读取 pdf 并开始按块进行转换的脚本。该脚本会写入文本块,直到完全阅读文档,然后将其转换为 pdf。类似的东西
if line_is_text():
write_the_line_as_is()
elif line_is_img():
transform_img_in_text()# comments below code
...
..
.
现在
transform_img_in_text()
我认为这可以通过许多外部库来完成,您可以使用的一个可以是:
您可以通过
pip
下载此库,上面的链接中提供了说明。
我过去使用过 pypdfocr 来做到这一点。不过最近没有更新。
来自自述文件:
pypdfocr filename.pdf
--> filename_ocr.pdf will be generated
仔细阅读 Windows 安装说明。
更新的 Python 库是 OCRmyPDF:https://github.com/jbarlow83/OCRmyPDF 有一个适用于 Windows 的 Docker 映像
我最近写了一篇博客文章,其中我使用以下方法完成了此操作:
您可能需要调整一些内容来满足您的需求,但我相信这篇文章中的构建块可以满足您的需求:
如果您正在寻找开源解决方案,您的选择可以是(但不限于)Ghostscript(将 pdf 页面转换为图像)、Tesseract 或 PaddleOCR(在图像上运行 OCR)。所有这些都可以安装在 Windows 上,并从 python 脚本中调用。
如果你想节省编写Python脚本的精力,你可以尝试GitHub中提供的PdfOCRer,它接受一个PDF(可能不可搜索),处理它并输出一个可搜索的PDF。