Linux で SVG (数語のラテン語テキストといくつかの簡単なベクター グラフィックを含む) を PDF に変換するにはどうすればよいですか?
Ubuntu Lucid で Inkscape 0.47 を試してみましたが、一部のサブグラフィックがランダムに移動し、出力 PDF の一部の行が短くなります。そのため、グラフィックがまったく異なるように見えるため、出力は役に立ちません。
Google Chrome 16 で SVG を開いて PDF に印刷しようとしましたが、すべての色が歪んでしまい、一部の要素も削除されてしまいます。(SVG は画面上では問題なく表示されますが、印刷プレビューではすでに不良であり、生成された PDF も不良です)
SVG をラスタライズしたりレンダリングしたりしたくありません。SVG をビットマップ画像に変換し、画像を埋め込んだ PDF を作成するという解決策は、私の質問に対する答えではありません。(参考までに、Inscape 0.47 は PNG にレンダリングするときに、アンチエイリアスなしでテキストを非常に醜い方法でレンダリングします)
他に選択肢はありますか?
答え1
rsvg 変換変換したい SVG の場合は次のようにしました:
$ sudo apt-get install librsvg2-bin
$ rsvg-convert -f pdf -o t.pdf t.svg
rsvg-convert -f pdf
SVG をラスタライズせず、フォントを埋め込んでサブセット化します (少なくとも Arial フォントの使用文字は埋め込まれています)。フォントの埋め込みが失敗する場合もあります (例: LMRoman17 フォント)。その場合、生成された PDF にフォント ファイル全体がコピーされます。
Ubuntu Lucid への依存関係:
- libcairo.so.2
- libgobject-2.0.so.0
- libgthread-2.0.so.0
- libglib-2.0.so.0
- librsvg-2.so.2
- libpthread.so.0
- libc.so.6
デフォルトでは、libcairo には libX11 が必要なので、rsvg-convert をヘッドレス システムにインストールするのは難しいかもしれません。
注記:
のマニュアル ページには、rsvg-convert
ツールは常にラスタライズすると記載されていますが、これは正しくありません。マニュアルが単に時代遅れになっているだけです。SVG 生成ツールが SVG イメージを部分的にラスタライズすることがあり、これも誤解を招く可能性があります。
答え2
これはUbuntu Lucidで動作します:
$ sudo apt-get install inkscape
$ inkscape t.svg --export-pdf=t.pdf
上記のコマンドライン Inkscape 呼び出しは、GUI なしのヘッドレス モードでも機能します ( DISPLAY=
)。ただし、Inscape をインストールすると、X11 を含む多くの依存関係がインストールされます。
エラーが発生した場合でも、Inskscape の終了ステータスは常に 0 になることに注意してください。そのため、stderr に注意してください。
inkscape --shell
また、多数のドキュメントを一括で変換するのに適した もあります。これにより、各ファイルの Inkscape の起動時間が遅くなるのを回避できます。
$ (echo t.svg --export-pdf=t.pdf;
echo u.svg --export-pdf=u.pdf) |
DISPLAY= inkscape --shell
Inkscape は SVG を簡素化するのにも役立ちます。
$ DISPLAY= inkscape t.svg --export-plain-svg=t.plain.svg
答え3
私は OSX と Ubuntu で CairoSVG を正常に使用しました。
pip install cairosvg
cairosvg in.svg -o out.pdf
答え4
Inkscape (0.47 も) から PDF に印刷したり、PDF として保存したり (若干異なりますが) すると良い結果が得られますが、これは手元のグラフィックによって異なる可能性があります。
解像度を低くした代替案(解像度を上げるためのスイッチは試していません)は
convert file.svgz file.pdf
convert
はパッケージの一部ですImageMagick
。Rasterizer は別のプログラムです。
rasterizer -m application/pdf file.svgz -d file.pdf
システムにインストールされているSVG処理プログラムを確認するには、
apropos -s 1 svg
これらのプログラムのマニュアルページには、プログラムが SVG を PDF に変換するのに役立つかどうかが説明されている必要があります。