rst2pdf で Sphinx から PDF 出力する方法 (Windows編)
SphinxからPDFを出力する方法は 2通り あります。今回は、rst2pdfを用いた方法でやってみました。
こんな感じで出力されます。
環境
pip をあらかじめインストールしておいてください(easy_installでもOK)
僕は、msysgit を用いました。
インストール方法
やることは下記の3点
- あらかじめ distutils.cfg にてコンパイラを指定しておく
- Windows版 PIL をインストール Python Imaging Library (PIL)
- pip install rst2pdf
ハマリポイントとしては、 unable to find vcvarsall.bat というエラーメッセージが出た場合の対処です。
distutils.cfg ファイルを C:\Python27\Lib\distutils 配下に下記ファイルを作成してください。distutils配下に作成した場合はシステムワイドに設定することになります。個人やローカルの範囲で準備することも可能です(詳細は、 Python モジュールのインストール — Python 2.7ja1 documentation)
[build] compiler=mingw32
ここでは、 mingw コンパイラを指定しましたが、 Visual Studio 2008 Express Edition でも大丈夫なようです(2010ではダメ)
Sphinx にて make pdf にて pdf 生成できるようにする
- セットアップ
msysgit(MSYS)上で make コマンドにてビルドできます。Makefile に追記します。
pdf: $(SPHINXBUILD) -b pdf $(ALLSPHINXOPTS) $(BUILDDIR)/pdf @echo @echo "Build finished. The PDF file is in $(BUILDDIR)/pdf"
conf.py に下記を追加してください。
お好みでプロジェクト名など適切に変えてください。
extensions += ['sphinx.ext.autodoc', 'rst2pdf.pdfbuilder'] pdf_documents = [ ('index', u'example', u'example ドキュメント', u'cointoss1973'), ] pdf_stylesheets = ['sphinx', 'kerning', 'a4', 'ja'] pdf_font_path = ['C:\Windows\Fonts'] pdf_language = "ja"
デフォルトのフォントでは日本語が表示されないので、ja.json ファイルを新規につくります。
- ja.json
{ "fontsAlias" : { "stdFont": "meiryo", "stdBold": "meiryob", "stdItalic": "meiryo", "stdBoldItalic": "meiryo", "stdMono": "MS Gothic", "stdMonoBold": "MS Gothic", "stdMonoItalic": "MS Gothic", "stdMonoBoldItalic": "MS Gothic" }, "styles" : [ ["base", { "wordWrap": "CJK" }], ["literal", { "wordWrap": "None" }] ] }
ビルド方法
msysgit 上で make pdf で作成できます。
_build/pdf の下に pdf ファイルが生成されます。