在 Windows Python 中将不可搜索的 Pdf 转换为可搜索的 Pdf

问题描述 投票:0回答:4

需要一个解决方案来将每个页面都是图像且页面可以包含文本、表格或两者的组合的 PDF 文件转换为可搜索的 pdf。

我已经使用了 ABBY FineReader Online,它做得非常好,但我正在寻找一个可以通过 Windows Python

实现的解决方案

我已经做了详细的分析,下面是接近我想要的但不完全是的链接:

扫描图像/PDF 到可搜索图像/PDF

说明使用Ghost脚本首先将其转换为图像,然后直接转换为文本。我不相信 tesseract 将不可搜索的 PDF 转换为可搜索的 PDF。

将可搜索 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库完成的解决方案,仅作为

  1. 以后无需支付订阅费用
  2. 我每天需要转换数千个文档,上传一个到API然后下载等等会很麻烦。

更新2

我知道将不可搜索的pdf直接转换为文本的解决方案。但我正在寻找他们将不可搜索的 PDF 转换为可搜索的 PDF 的任何方法。我有使用 PyPDF2 将 PDF 转换为文本的代码。

python python-3.x pdf ocr
4个回答
6
投票

实际上您并不需要将 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()
我认为这可以通过许多外部库来完成,您可以使用的一个可以是:

Tesseract OCR Python

您可以通过

pip
下载此库,上面的链接中提供了说明。


4
投票

我过去使用过 pypdfocr 来做到这一点。不过最近没有更新。

来自自述文件:

pypdfocr filename.pdf
--> filename_ocr.pdf will be generated

仔细阅读 Windows 安装说明。

更新的 Python 库是 OCRmyPDF:https://github.com/jbarlow83/OCRmyPDF 有一个适用于 Windows 的 Docker 映像


1
投票

我最近写了一篇博客文章,其中我使用以下方法完成了此操作:

  • OCRmyPDF - 一个包装 Tesseract 的 Python 库
  • 在 Azure 中运行的 docker 容器

您可能需要调整一些内容来满足您的需求,但我相信这篇文章中的构建块可以满足您的需求:

http://martyice.github.io/docker-in-azure/


0
投票

如果您正在寻找开源解决方案,您的选择可以是(但不限于)Ghostscript(将 pdf 页面转换为图像)、TesseractPaddleOCR(在图像上运行 OCR)。所有这些都可以安装在 Windows 上,并从 python 脚本中调用。

如果你想节省编写Python脚本的精力,你可以尝试GitHub中提供的PdfOCRer,它接受一个PDF(可能不可搜索),处理它并输出一个可搜索的PDF。

© www.soinside.com 2019 - 2024. All rights reserved.