【问题标题】:Tesseract ocr PDF as inputTesseract ocr PDF 作为输入
【发布时间】:2015-06-21 19:51:57
【问题描述】:

我正在构建一个 OCR 项目,并且我正在为 Tesseract 使用 .Net 包装器。包装器的示例没有显示如何处理 PDF 作为输入。使用 PDF 作为输入如何使用 c# 生成可搜索的 PDF?

  • 我使用 ghostscript 库将 Pdf 更改为图像,然后用它提供 Tesseract,它在获取文本时效果很好,但我没有保存 Pdf 的原始形状,我只获取文本

如何通过保存原始 Pdf 的形状从 Pdf 中获取文本

这是一个来自 pdf 的页面,我不想要只有文本,我希望文本的形状像原始 pdf 一样,抱歉英语不好

【问题讨论】:

  • 您需要一个库来将 PDF 转换为 Image。然后使用同一个库创建可搜索的 PDF。
  • 哪个库最适合这项工作,您能否为我提供一个如何执行此操作的示例.. 我想保存原始 pdf 的形状并在其下添加文本层 @朱哈尔
  • 删除了不必要的信息,将外部链接内联并修复了语法。这个问题需要“您尝试过的内容”(就实际代码而言),否则可能会被否决或被关闭。

标签: c# ocr tesseract


【解决方案1】:

仅出于文档原因,以下是 OCR 使用 tesseractpdf2image 从图像 pdf 中提取文本的示例。

import pdf2image
try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract


def pdf_to_img(pdf_file):
    return pdf2image.convert_from_path(pdf_file)


def ocr_core(file):
    text = pytesseract.image_to_string(file)
    return text


def print_pages(pdf_file):
    images = pdf_to_img(pdf_file)
    for pg, img in enumerate(images):
        print(ocr_core(img))


print_pages('sample.pdf')

【讨论】:

  • 记住如果你想改变语言,你只需要改变这行代码:text = pytesseract.image_to_string(file, lang='bul')在我的例子中是保加利亚语。另请查看此帖子以获取更多信息:stackoverflow.com/questions/44691829/…
【解决方案2】:

有一个方便的工具OCRmyPDF 可以在扫描的 PDF 中添加一个文本层,使其可搜索 - 这基本上可以自动执行前面答案中提到的步骤。

【讨论】:

  • 你的工具正是我需要的!
【解决方案3】:

Tesseract 从 3.0 版本开始支持创建三明治。但此功能推荐使用 3.02 或 3.03。 Pdfsandwich 是一个脚本,可以或多或少地执行您想要的操作。

有在线服务www.sandwichpdf.com,它确实使用 tesseract 创建可搜索的 PDF。在开始使用 tesseract 实施解决方案之前,您可能需要运行一些测试。结果还可以,但是有些商业产品可以提供更好的结果。 披露:我是www.sandwichpdf.com的创建者。

【讨论】:

  • tobltobs 谢谢你做了 pdfsandwich 支持 windows,因为我在 windows 7 64 位中使用 Visual Studio 2010 进行编码
【解决方案4】:

使用pdf2png.com,然后上传你的pdf,然后它会将每个页面的所有png文件在<pdf_name>-<page_number>.png文件中作为.zip文件,

然后,你可以编写简单的python代码为

#/usr/bin/python3
#coding:utf-8
import os
pdf_name = 'pdf_name'
language = 'language of tesseract'
for x in range(int('number of pdf_pages')):
    cmd = f'tesseract {pdf_mame}-{x}.png {x} -l {language}'
    os.system(cmd)

然后,读取所有文件,例如从 1.txt 一直向上,并附加到单个文件,就这么简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多