pythonでPDFを扱う際のモジュールをまとめました。
残念ながら、なんでもできる完璧なモジュールというのは存在しないため、用途によって使い分ける必要があるようです。
モジュール一覧
モジュール名 | 用途 | 概要 |
ReportLab | PDF生成 | 多機能なPDF生成ツール。 |
PyPDF2 | ページ操作 | PDFの分割結合、パスワード追加などが可能。 |
wkhtml2pdf | PDF生成 | html、cssからPDFを生成。 |
PDFMiner | 内容分析 | PDF文書から情報を抽出するためのツール。 |
Sphinx | PDF生成 | 文書作成用ライブラリ。PDF生成も可能。 |
各モジュールの詳細
・REPORTLAB
文字、図形、表などを自由にレイアウトしたPDFを作成できるツール。
ReportLab PLUS という有料ソフトの無料版。
連結などページ操作する機能は、無料版には含まれない。
CDラベル作成やバーコード作成なども可能。
・PYPDF2
PDF生成というよりは、PDFのページ操作(分割、結合など)ができることを特徴としている。
具体的には、ページのコピー、ページの回転、ページのオーバーレイ、ファイルの暗号化(パスワード追加)、ページ抽出、PDF文書の結合など。
日本語が含まれるPDFを扱うとエラーが出る可能性があるが、
モジュールの一部を書き換えるとエラーに対処できる模様。
・WKHTML2PDF
html+cssで作成した文書をPDF化できる。
Web作成の経験があれば、容易にPDF文書の作成が可能。
WebページのPDF化もできそう。
・PDFMINER
PDF文書から情報を抽出することを主目的としたツール。
ページ内のテキストの正確な位置だけでなく、フォントや行などの他の情報も取得可能。
・SPHINX
美しいドキュメントを作るためのモジュール。ドキュメントのPDF化も可能。
(PDF作成は付加的な位置づけ?)
最後に
個人的には、PDF作成までpythonで行うのは難しそうなので、
ExcelやWordで文書作成、PDF化し、ページの分割、結合などを
PyPDF2で行うのが現状ベストな方法ではないかと考えます。