SVG ファイルから PDF に変換するのを Python からできないかなーと思ったのでやってみた。
cairosvg というライブラリを使うと楽のようだ。内部で cairo ライブラリを呼び出す。
cairosvg は Python 3.4 以上向けのライブラリとのことである。
インストール面倒そうだったのでとりあえずcygwinのやつで試す。なお anaconda の python でもやってみたら動いた。後述。
Cygwin
準備
python3 向けの setuptools が入ってなかったので cygwin の setup.exe で次のパッケージを入れる。
- python3-setuptools
pipをセットアップする。バージョン部分は適宜読み替える。
setuptools-3.4 pip
CairoSVG をインストール
pip install cairosvg
Anaconda Python
Windows の Python でも Cairo のバイナリさえ適切に持ってくればいけるっぽい。
Cairo のインストール
適当な GTK+ all-in-one bundle の Windows 向けをダウンロードしてきて、 .dll の入っているフォルダにパスを通す。
今回は以下のサイトから gtk3 のやつをつかってインストールした。パスも自動で設定してくれるので楽ちん。
tschoonj/GTK-for-Windows-Runtime-Environmen... - GitHub
CairoSVG をインストール
pip install cairosvg
PDF生成
import cairosvg cairosvg.svg2pdf(url='file.svg', write_to='dest.pdf')
dpi=72 等様々なオプションも指定できるようだ。