以前の記事で、python で PDF を読み書きできるライブラリとして、「borb」を紹介してきました!
python で PDF を読み書きできる ライブラリ「borb」(入門編) PDFを扱っていて、PDFをそのまま編集できたらいいのにな~と思うときありませんか?本来であれば、PDFに出力前の形式に戻って編集をしなければいけませんが、それでは手間がかかる! そんなときに、おすすめなのが今回紹介する borbという...
今回は、borbに続いて同じくPDFを読み書きができるライブラリとして「PyMuPDF」というライブラリを見つけたので、ライブラリについての紹介と簡単な使い方を紹介していきます!!
PyMuPDFとは?
pythonでPDFなどを読み書きできるライブラリで、もともとあったC言語で書かれたMuPDFのpython版です!
試してみたところ、英語だけではなく、日本語も読み取ることができそうです!!
対応可能なファイル形式
電子書籍などに使われる形式も対応しているので、電子書籍の読み込みもできそうです!
- 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などの翻訳機にかけるのは手間がかかる。しかし、そのままコピーすると文の途中で改行が入ってしまって形が崩れてしまう... などの問...
コメント