影印版PDF文档的中日英三种文字提取

影印版的 PDF 文档由于是扫描或影印得到的图像,无法直接提取其中的文字。因此,我们需要使用 OCR 技术来识别并提取图片中的文字。

上python代码

import fitz  # PyMuPDF
from PIL import Image
import pytesseract
import io
from loguru import logger

# 添加日志记录
logger.add(r"FileFetcher\log.log", rotation='10MB', format="{time} {level} {message}", compression='zip', retention="72h")
# 设置 tesseract 的路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 定义 PDF 路径
pdf_path = r'XXX.pdf'
# 打开 PDF 文件
pdf_document = fitz.open(pdf_path)

# 打开输出文件
with open(r'FileFetcher\output.txt', 'w', encoding='utf-8') as f:
    # 遍历 PDF 的每一页
    for page_num in range(len(pdf_document)):
        page = pdf_document[page_num]
        # 获取当前页的所有图片
        image_list = page.get_images(full=True)

        # 遍历当前页的所有图片
        for img_index, img in enumerate(image_list):
            # 获取图片的 xref
            xref = img[0]
            # 提取图片
            base_image = pdf_document.extract_image(xref)
            # 获取图片的字节数据
            image_bytes = base_image["image"]
            
            # 将字节数据转换为图片
            image = Image.open(io.BytesIO(image_bytes))
            
            # 使用 tesseract 识别图片中的文字
            text = pytesseract.image_to_string(image, lang='chi_sim+eng')
            # 将识别的文字写入输出文件
            f.write(f"Page {page_num + 1}, Image {img_index + 1}: {text}\n")
            # 记录日志
            logger.info(f"Page {page_num + 1}, Image {img_index + 1}: {text}")
            
# 输出提示信息
print("内容已成功写入 TXT 文件。")
# 关闭 PDF 文件
pdf_document.close()

安装 Tesseract-OCR 指南

Tesseract OCR 是一款由 HP 实验室开发并由 Google 维护的开源光学字符识别引擎。以下是在 Windows 系统中安装 Tesseract OCR 的详细步骤:

1. 下载安装包

访问 Tesseract OCR 下载页面,选择与你的系统架构相匹配的安装包进行下载,例如 tesseract-ocr-w64-setup-5.3.4.20240503.exe

2. 安装 Tesseract OCR

下载完成后,运行 .exe 文件并遵循安装向导的提示完成安装。在安装过程中,你可以选择是否下载额外的语言包。如果没有 VPN 来加速下载,建议跳过语言包的安装,稍后单独下载。

3. 配置系统环境变量(可选)

虽然不是必需的,但配置环境变量可以让你在任何路径下都能调用 Tesseract 命令。在“设置”中搜索“环境变量”,然后在“系统变量”中找到并编辑 Path 变量,添加 Tesseract 的安装路径。

4. 验证安装

如果未设置环境变量,需要先导航到 Tesseract 的安装目录。打开命令行窗口,输入 tesseract -v 来验证 Tesseract 是否正确安装。如果命令行显示版本信息,则表示安装成功。

5. 下载语言包

若需识别特定语言,可能需要下载相应的语言包。访问 Tesseract GitHub tessdata 仓库 下载语言包,然后将下载的语言包文件放入 Tesseract 安装目录下的 tessdata 文件夹中。

5. 1 下载并安装中文语言包
  • 访问 Tesseract 的 GitHub tessdata 仓库。
  • 下载 chi_sim.traineddata 文件,这是用于简体中文的语言包。
  • 将下载的 chi_sim.traineddata 文件复制到 Tesseract 的 tessdata 目录下,默认路径为 C:\Program Files\Tesseract-OCR\tessdata\
  • 安装完成后,运行 tesseract --list-langs 命令来确认中文语言包已经正确安装。

6. 在 Python 中使用 Tesseract

若计划在 Python 项目中使用 OCR 功能,可通过 pip 安装 pytesseract 库。此外,可能需要在 pytesseract.py 文件中指定 Tesseract 的路径,以便 Python 能够调用 Tesseract。

按照以上步骤,你应该能够在 Windows 系统中成功安装并配置 Tesseract OCR。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部