PDFから文章を読み取る! 「PyMuPDF 入門編」

便利ツール

 以前の記事で、python で PDF を読み書きできるライブラリとして、「borb」を紹介してきました!


 今回は、borbに続いて同じくPDFを読み書きができるライブラリとして「PyMuPDF」というライブラリを見つけたので、ライブラリについての紹介と簡単な使い方を紹介していきます!!

スポンサーリンク

PyMuPDFとは?

pythonでPDFなどを読み書きできるライブラリで、もともとあったC言語で書かれたMuPDFのpython版です!

試してみたところ、英語だけではなく、日本語も読み取ることができそうです!!

対応可能なファイル形式

電子書籍などに使われる形式も対応しているので、電子書籍の読み込みもできそうです!

  • PDF
  • XPS
  • OpenXPS
  • CBZ
  • EPUB
  • FB2

PyMuPDFでできること

  • 文書を復号化する
  • メタ情報、リンク、ブックマークにアクセスする
  • ラスター形式(PNGなど)or ベクター形式のSVGでページをレンダリング
  • テキストを検索
  • テキスト や 画像の抽出
  • 他の形式に変換:PDF、(X)HTML、XML、JSON、テキストへ

インストール方法

pip install でインストールすることができます!

pip install pymupdf
スポンサーリンク

PDFを読み込んでみる!

import

fitzをインポートします

import fitz

ドキュメントを開く

ファイル名を指定して、ファイルを開きます!

doc = fitz.open('filename.pdf')

ドキュメント情報取得

ドキュメントの情報として、読み込めるのは以下の4つの情報です!

page_count = doc.page_count #ページ数
meta_data = doc.metadata    #メタデータ
toc = doc.get_toc()         # 目次 (Table of Contents)
page = doc.load_page(<読み込むページ>) #ページを読み込む

メタデータとは?

  • 作成者
  • フォーマット (EPUBなど)
  • 最終更新日
  • キーワード
  • タイトル
  • 作成日 など

全ページのテキストを読み込む

doc.load_pageで1ページずつテキスト情報を読み込む。これをpage_countで取得したPDFのページ数分を読み込んでいきます!

texts = []
for page_num in range(doc.page_count):
    page = doc.load_page(page_num) texts.append(page.get_text("text").replace('\n',''))
print(texts)
スポンサーリンク

おわりに

この記事では、PyMuPDFの使い方について説明してきました!実際に使ってみる例として「英文PDFを読み込み 翻訳する」という記事を書いているので、こちらも合わせて読んでみてください!

英文PDF の翻訳プログラムを作成!! (DeepL + PyMuPDF)
 英語で書かれている PDF を翻訳して読みたいとき、みなさんはどうしてますか?一文ずつコピーして DeepLなどの翻訳機にかけるのは手間がかかる。しかし、そのままコピーすると文の途中で改行が入ってしまって形が崩れてしまう... などの問...

コメント

タイトルとURLをコピーしました