Tesseract ocr PDF 作为输入

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

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

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

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

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

c# ocr tesseract
5个回答
24
投票

出于文档原因,这里是

OCR
使用
tesseract
pdf2image
从图像 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')

16
投票

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


8
投票

Tesseract从3.0版本开始支持三明治的创建。但建议使用 3.02 或 3.03 来实现此功能。 Pdfsandwich 是一个脚本,或多或少可以做你想要的事情。

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

的创建者

0
投票

使用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一直向上,并附加到单个文件,就这么简单。


-1
投票

好信息的人,这非常有帮助 加科哈里老虎机

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