C# Tesseract ocr PDF作为输入

C# Tesseract ocr PDF作为输入,c#,ocr,tesseract,C#,Ocr,Tesseract,我正在构建一个OCR项目,并且我正在使用.Net包装器来实现它。包装器中的示例没有显示如何将PDF作为输入处理。使用PDF作为输入如何使用c#生成可搜索的PDF 我使用ghostscript库将Pdf更改为图像,然后将其提供给Tesseract,获取文本效果很好,但我没有保存Pdf的原始形状,只获取文本 如何保存原始Pdf的形状,从Pdf中获取文本 这是一个来自pdf的页面,我不希望只包含文本,我希望文本的形状与原始pdf一样,并且为糟糕的英语感到抱歉,Tesseract支持自3.0版以来

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

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


这是一个来自pdf的页面,我不希望只包含文本,我希望文本的形状与原始pdf一样,并且为糟糕的英语感到抱歉,Tesseract支持自3.0版以来创建三明治。但此功能建议使用3.02或3.03。 是一个脚本,它或多或少实现了您想要的功能

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

的创建者,仅出于文档原因,这里有一个使用
tesseract
pdf2image
从pdf图像中提取文本的
OCR
示例

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')

使用pdf2png.com,然后上传您的pdf,然后它将使每个页面的所有png文件成为
-.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.txt,然后附加到单个文件,就这么简单。

您需要一个库才能将PDF转换为
图像。然后使用同一个库创建可搜索的PDF。哪一个库最适合这份工作,你能给我提供一个示例来说明如何做到这一点。。我想保存原始pdf的形状,并在其下添加文本层@juharr删除不必要的信息,链接外部链接,并固定语法。这个问题需要“您尝试了什么”(就实际代码而言),否则它有被否决或关闭的风险。tobltobs感谢您的pdfsandwich支持windows,因为我正在windows 7 64位系统中使用visual studio 2010进行编码