Pythonでautomationの勉強をしているため覚書.
PyPdfとは
オープンソースのpythonライブラリ. PDFファイルに対していろんな操作ができる. pypdf.readthedocs.io
多分PyPDF2からPyPDFに戻ったんだと思う.
pip install pypdf
で利用可能
最初の躓き
なぜかModuleNotFoundErrorが出てpypdfがインポートできない. ドキュメントのとおりにインストールしたのだが....?
原因
ライブラリのインストールの箇所が読み込まれていないらしい. Pythonに関しては未だ無知なのでこちらをまるまる参考にした.
import sys sys.path.append("/usr/local/lib/python3.9/site-packages")
本当にこの記述だけで動くようになった. ドキュメント通りにやったのに差異があるのが悔しい.
実装
実は画像を抽出するのはドキュメントのコードを真似すればいいだけなので簡単. 一応CLIでファイル名とページ番号を指定できるようにしてみた. GUIもつければ楽しいかもしれないが, 自分用なので....
import sys sys.path.append("/usr/local/lib/python3.9/site-packages") import pypdf from pypdf import PdfReader name = input('input your file name: ') reader = PdfReader(name) num = input('Which page do you want to look into? : ') num= int(num) page = reader.pages[num] count = 0 for image_file_object in page.images: with open(str(count) + image_file_object.name, "wb") as fp: fp.write(image_file_object.data) count += 1
こんな感じ. pdf限定なので拡張子はjoinすればよかったかもしれないが, それはそれで紛らわしい. pyodfではいろんなことができるっぽいので遊び倒したい.