我正在构建一个 OCR 项目,并且正在使用 .Net 包装器来实现 Tesseract。包装器的示例未显示如何处理 PDF 作为输入。使用 PDF 作为输入如何使用 C# 生成可搜索的 PDF?
如何从 Pdf 中获取文本并保存原始 Pdf 的形状
这是 pdf 中的页面,我不想要只有文本,我希望文本的形状像原始 pdf 一样,抱歉英语不好
出于文档原因,这里是
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')
有一个方便的工具 OCRmyPDF 可以将文本图层添加到扫描的 PDF 中,使其可搜索 - 这基本上可以自动执行之前答案中提到的步骤。
Tesseract从3.0版本开始支持三明治的创建。但建议使用 3.02 或 3.03 来实现此功能。 Pdfsandwich 是一个脚本,或多或少可以做你想要的事情。
有在线服务 www.sandwichpdf.com,它确实使用 tesseract 来创建可搜索的 PDF。在开始使用 tesseract 实现解决方案之前,您可能需要运行一些测试。结果还不错,但有些商业产品可以提供更好的结果。 披露:我是 www.sandwichpdf.com.
的创建者使用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一直向上,并附加到单个文件,就这么简单。
好信息的人,这非常有帮助 加科哈里老虎机