Hatena::ブログ(Diary)

Fly me to the Juno! このページをアンテナに追加 RSSフィード

2009-01-10

rst2pdfを使うには

設計書をTracWikiに書いて、後でPDFで出力できないか?というお話があったので、調べてみた。Tracが標準でサポートしているReStructuredText(以下ReST)をだったらPDFに変換できました。たぶんそれをうまく使えばTrac/Wikiで管理している設計書をPDFにできるんじゃなかろうか、ということでメモ。使ったものはPythonで書かれているrst2pdf。世の中これ以外にもrst2latexしてそっからplatex2dvi->dvi2pdfっていう手順を踏むとか、RubyでかかれたReSTを使うとか、ありましたよ。

TracにあるデータをPDFにするんだったら、XML-RPCを使ってWikiからデータ引っこ抜いて"{{{","}}}"をうまくなんとかやっつければ、そのまま変換できますな。

インストール

注意

easy_installを使ってインストールすることもできるけど、ソースを落としてきてコンパイルとかして、こけるこける><easy_installはまだネイティブコードのない奴に限る気がする。

試した環境

最初Windows XP 64bit Professional/Python 2.5って環境でやってたけど、上記の注意で書いたとおり、コンパイル環境を構築できずに断念した。

手順

1. 依存するライブラリからインストールしていく。

rst2pdfが依存するライブラリはPython Imaging Library (PIL)UniConvertorReportLabの3つ。この順にインストールするが、Ubuntuの場合すべてaptitudeでインストール可。PILはPython2.5に同梱されていますのでインストールする必要ないかも。

sudo aptitude install python-imaging
sudo aptitude install python-uniconvertor
sudo aptitude install python-reportlab

2. ".uniconvertor"ディレクトリをホームディレクトリに作る

なんかよくわかんないけど、コマンド叩くと怒られるので、作りました。

mkdir .uniconvertor

3. フォントの設定を書く

日本語のReSTファイルを変換すると文字化けして見えるのは、埋め込まれるフォントが対応していないから。ということでフォントの設定を書きます。フォントの設定等、デフォルトのスタイルは"rst2pdf --print-stylesheet"を叩くとstdoutに出力されるのでそこからファイルに落とします。

rst2pdf --print-stylesheet > rst2pdf_default.style

次に出力されたrst2pdf_default.styleの

    ["normal" , {
      "parent": "base"
    }],

    ["normal" , {
      "fontName": "IPAMonaPGothic"
    }],

と言うように、今使ってる標準truetypeフォントに切り替えました。標準で使っているフォント名が分かんない場合は

fc-match

ってやると出力されているフォントだとおもわれ。

4. いよいよ変換してみる。

標準でないフォントの場合、フォントの配置場所を指定する必要があります。指定しない場合は検索するためめっさ時間がかかるので、探しておいた方が幸せでしょう。今回の場合は下記のようにしたらうまく出力されました。

rst2pdf [RSTファイル名] -s rst2pdf_default.style -o [出力PDFファイル名] --font-path /usr/share/fonts/truetype/ipamona

なおrst2pdfはフィルタとしても使えるので結構ReSTで書かれている文章があれば使えるツールではないでしょうか?サンプルではこんな例が紹介されてました。

curl http://docutils.sourceforge.net/docs/user/rst/quickstart.txt | rst2pdf > quickstart.pdf

rst2pdfのマニュアル

ReSTテキスト PDFばーじょん

2008-02-18

distutilsの使い方Tips

Pythonのドキュメントを良く読んできたわけではないのですが(ぉぃ)、Webをぶらついていたら見つけました。別にPYTHONPATHが通っているパスであれば伝家の宝刀

setup.py install 

が使えるんですね。オプションで使える--homeなどを使えば指定した場所へのインストールが完了します。注意しなければならないのが、あらかじめインストールされる先のHOME/lib/pythonなどのフォルダは作成しておいて、PYTHONPATHに通しておく必要があります。これでbata版やらtrunkのpythonものを追いかやすくなりましたとさ。

Python モジュールの別の場所へのインストール方法

2007-09-13 急に寒くなった

Trac月の英語化するには

ぽちっとなインストーラーなTracは海外にはなさそうなので、

Trac月を英語化することに挑戦してみました。これもメモ。

キーとなったのは、TRAC_LIGNT_INST_DIR/python/Lib/site-packages/tracの中。

この中にTracのソースコードが入ってます。

どうもこのソースコードがApacheのmod_pythonから実行されているっぽいのです。

trac.cgiが参照しているtracのソースはこいつを見ていました。

もしかして、

python setup.py install 

すると、Pythonの実行環境のLib/site-packagesにソースコードがインストールされるんやろか。

これでとりあえずTracのアップグレードをするために、手でいじれます。

(まぁ、めんどいから褒められた手じゃないです。)

もう一つ。

TRAC_LIGNT_INST_DIR/python/share/tracの中に、

Tracの各プロジェクトで共通になる設定やテンプレートが

てんこ盛りにインストールされている模様。

この辺もいじってみました。