🐕
Ocr
import easyocr
import fitz
import os
from PIL import Image
# OCRモデルの読み込み
reader = easyocr.Reader(['ja'])
# 出力ファイル名の設定
output_filename = "output.md"
# 出力ファイルのオープン
output_file = open(output_filename, "w")
# PDFファイルの読み込み
pdf_file = "input.pdf"
with fitz.open(pdf_file) as doc:
# ページごとに処理を実行
for page_number, page in enumerate(doc):
# OCR処理
image_list = page.get_images(output="png")
for image_number, image in enumerate(image_list):
image_path = f"page_{page_number+1}_image_{image_number+1}.png"
Image.frombytes("RGB", [image.width, image.height], image.samples).save(image_path)
output_file.write(f"![image{image_number+1}](./{image_path})\n\n")
text = reader.readtext(page.get_text("text")).strip()
if len(text) > 0:
output_file.write(f"{text}\n\n")
# 出力ファイルのクローズ
output_file.close()
Discussion