影印版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。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » OCR提取影印版PDF文档的中日英三种文字
发表评论 取消回复