需要一种解决方案,将每个页面均为图像并且页面可以包含文本,表格或两者的组合的PDF文件转换为可搜索的pdf。
我使用的ABBY FineReader Online可以很好地完成这项工作,但是我正在寻找可以通过 Windows Python
实现的解决方案我已经进行了详细的分析,下面是与我想要的内容接近但并不完全相同的链接:
Scanned Image/PDF to Searchable Image/PDF
告诉您使用Ghost脚本将其1st转换为图像,然后将其直接转换为文本。我认为tesseract无法将不可搜索的PDF转换为可搜索的PDF。
Converting searchable PDF to a non-searchable 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转换为文本的代码。
答案 0 :(得分:5)
那么您实际上并不需要将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
下载此库,如上面链接中所述。
答案 1 :(得分:4)
我过去曾经使用pypdfocr来做到这一点。但是,它最近尚未更新。
自述文件:
pypdfocr filename.pdf
--> filename_ocr.pdf will be generated
仔细阅读Windows的安装说明。
最新的Python库是OCRmyPDF:https://github.com/jbarlow83/OCRmyPDF有一个适用于Windows的Docker映像
答案 2 :(得分:4)
如果您可以接受online ocr解决方案,那么OCR.space提供的免费OCR API也可以create searchable PDFs并且运行良好。
在免费版本中,创建的PDF包含水印。要删除水印,您需要升级到其商业PRO计划。您可以使用首页上的网络表单来测试api。
OCR.space也可以作为非订阅的本地选项使用,但是我不确定价格。我个人使用免费的ocr api取得了成功。
答案 3 :(得分:1)
我最近写了一篇博客文章,其中我使用了以下内容:
您可能需要进行调整以满足您的需求,但是我相信本文中的构建基块可以适用于您的需求: