09:09ドキュメントを書くのが楽しくなるPython製ドキュメント作成ツール「Sphinx」で簡単にPDFを作成する方法を紹介します。Sphinxは1つのテキストファイルからHTMLやPDF、ePub等々をあっという間に生成してくれる素敵なツールです。編)」で「rst2pdf」や「LaTeX」を使用する方法が紹介されているのですが、実際に試してみると周辺ツールの導入が大変だったり、エラーが出たりでなかなか思うようにPDFを作成できませんでした。そこで発想を変えて、SphinxでHTMLを作成し、そのHTMLからPDFを生成する方法を試してみたところ、おおよそ実用的なPDFが生成できることがわかりました。以下、今回試してみた方法の(Ubuntuでの)手順です。wkhtmltopdfを導入まず、「wkhtmltopdf」を導入します。wkhtmltopdfはWebKitを利用して、HTMLをPDFに変換してくれるツールです。Binary」)をダウンロードしてインストールします。apt-getコマンドでもインストールできますが、Qtにパッチを当てないと使えない機能が多く、PDFの生成時に細かい制御が行えません。Binary」にはパッチ済みのQtが含まれています。wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2アーカイブを展開してできた「wkhtmltopdf-i386」をパスの通った場所に置いておきます。SphinxでHTMLをビルドSphinxのドキュメントは、必要に応じて「onlyディレクティブ」や「ifconfig拡張」を使用してコンテンツを切り替えるようにしておきます。PDFに変換するHTMLをSphinxでビルドします。今回は、複数のドキュメントから1つのHTMLファイルを生成してくれる「singlehtml」ビルダーを使用しました。singlehtmlPDF用のCSSを定義PDF用のユーザースタイルシートを作成します。Sphinxのテーマに印刷用スタイルシートがある場合はそれを利用することもできます。その場合はこの節の作業は不要です。pdf.cssHTMLをwkhtmltopdfでそのまま変換するとHTML要素の途中で改ページされてしまいます。CSSの「page-break-inside」プロパティを利用して改ページの可否を定義します。その他、必要に応じて「page-break-inside」「page-break-before」「page-break-after」プロパティを利用して改ページや細かいスタイルを定義します。作成したユーザースタイルシートを指定して、SphinxでビルドしたHTMLファイルをPDFファイルに変換します。index.pdf変換が完了すると目次や内部・外部リンクの付いたPDFが生成されます。印刷用スタイルシートを利用する場合Sphinxテーマの印刷用スタイルシート(メディアタイプが「print」のもの)を利用する場合は、wkhtmltopdに「--print-media-type」オプションを付けて実行します。Manual」にある各種オプションを使用することで生成するPDFもかなり細やかに制御できます。self.attributes[key]というエラーが出てビルド自体ができませんでした)。rst2pdfやLaTeX経由のPDF生成は試せなかったので詳しくはわからないのですが、両者の良いとこ取りをしつつ、普通のHTMLドキュメントを作成する感覚でPDFが生成できるのは嬉しいのではないでしょうか?Sphinxで素早く簡単に綺麗な日本語のPDFを作成したい場合にはぜひ一度お試しください。(0)この記事へのコメントはまだありません。<や>は&lt;、&gt;と入力してください。)コメントを入力してください。(0)この記事へのトラックバックはまだありません。