🐷

【Azure Document intelligence/PyPDF2/python】OCRをするドキュメントのページ数を取得する方法

2024/09/28に公開

執筆日

2024/09/28

やること

Azure Document intelligenceを使ってドキュメントのOCRを行うアプリケーションを開発していました。その際に、ドキュメントのページ数を取得する機能を実装する必要がありました。
あれ、どうやってやるんだ?と思ったので記事にします。

前提

  • python 3.9.6
  • 以下参考にAzure Document intelligenceをつかるようにする

https://zenn.dev/headwaters/articles/8e23a752096c1e

コード

  1. 以下のライブラリーをinstallする
pip install pypdf2
  1. 以下のコードを実行する
main.py
import time  
from azure.ai.formrecognizer import DocumentAnalysisClient  
from azure.core.credentials import AzureKeyCredential  
from datetime import datetime  
import PyPDF2  
  
# 設定を読み込み  
endpoint = <endpoint>  
api_key = <key>
  
# クライアントを作成  
client = DocumentAnalysisClient(endpoint=endpoint, credential=AzureKeyCredential(api_key))  
  
# ファイルを読み込んで  
file_path = "<該当のPDFファイルのパス>"  
  
# PyPDF2を使ってページ数を取得  
with open(file_path, "rb") as file:  
    reader = PyPDF2.PdfReader(file)  
    num_pages = len(reader.pages)  
    print(f"ページ数: {num_pages}")  
  
# 分析開始  
with open(file_path, "rb") as file:  
    print(f"{datetime.now()}: アップロード開始")  
    poller = client.begin_analyze_document("prebuilt-document", file)  
      
    # ステータスが完了になるまでポーリング  
    while not poller.done():  
        print(f"{datetime.now()}: Waiting...")  
        time.sleep(3)  
      
    # 結果を取得  
    result = poller.result()  
  
print(f"{datetime.now()}: 完了!!")  
  1. できた!
ヘッドウォータース

Discussion