Pythonを使うと、PDF作業を効率化することが可能です。
効率化できるPDF操作は多岐にわたりますが、たとえば以下のような仕事を自動化できます。
・PDF生成(ExcelやWordなどのPDF化)
・PDFのテキスト抽出
・PDF分割
・PDF結合
・PDFの画像抽出
・PDFパスワード自動設定
・PDF透かし
しかしながら上記のような作業が可能と言われても、イメージがわかない人もいるはずです。
そこでPythonとPDFを仕事で活用していく方法を事例をまじえながら紹介していきます。
目次
PythonでPDF操作を自動化するライブラリ|pypdf2, pymupdf, pdfminer
Pythonではライブラリを使ってPDFを操作します。
ライブラリにはいくつかの選択肢が存在します。
私が使うのは以下の3つです。
1. pypdf2
2. pymupdf
3. pdfminer
実際には上記のライブラリ以外にもPDF操作のライブラリは存在します。
以下で上記の3つについて紹介していきます。
ライブラリ1|pypdf2
pip install PyPDF2
pypdf2はPDF操作で最も使い勝手の良いライブラリです。
なぜならウェブに多くの情報が紹介されているからです。
ウェブで調べながらPythonプログラムを作っていく人も多いです。
私自身、pypdf2を使用することが多いですが、その理由はウェブでの公開情報の多さです。
特徴としてはPDF生成だけでなく、PDFのページ操作(分割や結合)まで幅広く作業を行うことが可能です。
実際に、本記事で紹介しているファイルの暗号化(パスワード付与)、PDF分割や結合などはpypdf2を使用しています。
ただし、日本語を含んだPDFのテキスト抽出は得意ではないので、テキスト操作をする際には注意が必要です。
ライブラリ2|PyMuPDF
pip install pymupdf
PyMuPDFはPDFを操作するライブラリです。
PyMuPDFは、Python環境内からPDFの情報を取得することが可能です。
PyMuPDFで使えるのは、テキスト取得(日本語可能)や画像取得です。
そこまで難しくないプログラムで情報を一気に取得できるので、PDFのテキストや画像を取ってきたい人にはオススメのライブラリです。
ライブラリ3|pdfminer
pip install pdfminer.six
PDFからテキスト情報を取得するときに使用することが多いライブラリです。
テキスト情報だけでなく、テキストに関わる(フォントや行数)情報も取得できるのが特徴です。
PythonでPDF操作を自動化する事例
この記事では以下の事例について紹介していきます。
1. PythonでPDFに変換|Excel, WordからPDF化(生成)
2. PythonでPDFのテキストを読み込む(日本語で)
3. PythonでPDFを読み込み画像抽出
4. PDFにパスワードを自動設定
5. PDFに透かしを入れる
6. PDFをページで分割する
7. フォルダ内のPDFを順番通りに結合する
8. PDFの記載を翻訳しながらExcelやWordに変換する
9. PDFをメール送信する
1. PythonでPDFに変換|Excel, WordからPDF化(生成)
事例2|Excelの顧客データからWordの差し込み印刷(PDF化)
事例1|Excelのデータから請求書(PDF)を自動作成
Python×Excel×PDFの事例です。Pythonを使ってExcelデータから請求書PDFします。
請求書のようなルーティン作業を自動化できると、仕事がかなりラクになります。
openpyxlではExcelからPDFを生成することはできないため、xlwingsを使うようした事例を以下で紹介しています。
プログラムも含めて詳しく紹介していますので、興味がある人はぜひ勉強してみてください。
事例2|Excelの顧客データからWordの差し込み印刷(PDF化)する
Python×Excel×Word×PDFの事例です。
Excelの顧客データをもとにWordの情報を置換し、置換後のWordをPDF化します。
この処理を使うと、テンプレートとなるwordファイルを準備すれば、あとは自動で住所や氏名などを挿し込み(置換)してくれます。
以下でプログラムも含めて詳しく紹介していきます。
ちなみに、このプログラムと以下のOutlook送信プログラムと組み合わせることで、差し込み印刷で作成したPDFをOutlookに添付してメール送信することも可能です。
事例おまけ|ファイルを添付してメールを送信する
顧客リストへ個別にメールを通知するプログラムです。
ファイルを添付してメール送信するため、PDFを配信することが可能です。
興味がある人はご覧ください。
2. PythonでPDFのテキストを読み込む(日本語で)
事例3|PythonでPDFテキストを読み込みExcel変換して一覧化する
Pythonを使ってPDFのテキスト(日本語)を読み込み、Excelにリストアップします。
PDFの自動化作業に興味がある人の中には、PDFをExcelに転記する作業をラクにしたいと考えている人は少なくないはずです。
このプログラムは完全ではありませんが、作業を効率化するヒントにはなるはずです。
3. PythonでPDFを読み込み画像抽出
Pythonを使うとPDFの画像を全て取得することができます。
以下の事例では、PDFの画像を全て取得しフォルダ内の保存するPythonプログラムを解説しています。(画像ファイルはpngやjpegとして保管)
またプログラムの欠点も含めて紹介していますので、作業効率化のヒントにご活用ください。
4. PDFにパスワードを自動設定
事例4|フォルダ内の全てのPDFファイルに自動作成したパスワードを付与
Pythonを使うことで、パスワードを自動設定することができます。
以下の記事では、フォルダ内の保管してあるPDFファイルにパスワードを自動設定するPythonのプログラムです。
設定したパスワード情報は自動生成されるエクセルに別ファイルとして保管することが可能です。
ちなみに、この記事のプログラムを応用すれば、パスワード設定したPDFを添付したメールを自動送信できるようになります。
当然、パスワードも別メールとして送信できるので、セキュリティ面も考慮して取引先との連絡が可能です。
5. PDFに透かしを入れる
事例5|フォルダ内の全てのPDFファイルに透かしを入れる
Pythonを使うとPDFの全ぺージに透かし(会社のロゴやConfidentialなど)を入れることができます。
ただ単純にPDFに透かしを入れるだけでは効率化の度合いが小さいです。
そこで、フォルダ内の全てのPDFの全ページに透かしを入れていくプログラムを紹介します。
以下の記事ではプログラムも含めて紹介しています。
6. PDFの分割や結合
事例7|PythonでPDFを複数まとめて結合!日本語ファイルを1つに集約
事例6|Pythonでフォルダ内のPDFをページ毎に分割して保存(PyPDF2)
Pythonを使うと、PDFをページごとに分割することができます。
以下の事例では所定のフォルダ内のPDFを分割し、新しいフォルダに自動保存するプログラムを紹介しています。
事例7|PythonでPDFを複数まとめて結合!日本語ファイルを1つに集約
Pythonを使うと、複数のPDFを1つのPDFに集約することができます。
以下の事例では所定のフォルダ内のPDFを1つのPDFに結合するプログラムを紹介しています。
Pythonについて詳しく理解したいなら
Pythonを活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にPythonを活用して効率化してきた作業は以下の記事で紹介しています。
興味がある人は以下の記事もご覧ください。
Python×効率化のサンプル
Pythonで効率化できる事例をサンプルコード付きで紹介しています。
Python×Excel
PythonとExcelで自動化できることを紹介しています。
事例も数多く紹介しているので、ぜひ参考にしてみてください。
Pythonって難しい?
Pythonの難易度などについては、以下で紹介しています。
勉強の参考になれば幸いです。