pytesseract实现识别pdf文件并将内容写入word文档中

步骤一:先安装tesseract-ocr-w64-setup-5.4.0.20240606 (安装记得语言包只安装需要的即可)
步骤二:将安装目录添加到系统环境变量中
(网上很多这一步之后就说可以运行程序了其实不然,一直报错没有添加到环境变量中)
步骤三:

第四步:可以正常运行啦

==========================================================================================

from PyPDF2 import PdfReader
from docx import Document
import pytesseract
from PIL import Image
import io

def pdf_to_word_with_ocr(pdf_path, word_path):
import os
# 检查文件是否存在
if not os.path.exists(pdf_path):
raise FileNotFoundError(f"指定的文件 {pdf_path} 不存在。")

# 创建Word文档对象
doc = Document()

# 打开PDF文件
reader = PdfReader(pdf_path)

# 遍历PDF中的每一页
for page_number, page in enumerate(reader.pages):
    # 尝试提取页面文本
    text = page.extract_text()
    if text:
        # 如果能直接提取到文本,就添加到Word文档中
        doc.add_paragraph(text)
    else:
        # 如果页面没有文本,尝试使用OCR提取图像中的文本
        images = page.images
        if images:
            for image_index, img in enumerate(images):
                # 将图像数据从PDF中提取出来
                image = Image.open(io.BytesIO(img.data))
                # 使用OCR识别图像中的文本
                ocr_text = pytesseract.image_to_string(image, lang='chi_sim')
                doc.add_paragraph(f"第{page_number+1}页, 图像{image_index+1}: {ocr_text}")
        else:
            # 如果页面既没有文本也没有图像,添加一个占位符
            doc.add_paragraph(f"第{page_number+1}页无文本或图像。")

# 保存Word文档
doc.save(word_path)

使用函数

pdf_path = '45.pdf'
word_path = 'output.docx'
pdf_to_word_with_ocr(pdf_path, word_path)

posted @   龙岩龙  阅读(178)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示