どのように私は、Linux上でPDFにSVG(ラテン語のテキストといくつかの簡単なベクターグラフィックのいくつかの単語を含む)を変換するにはどうすればいいですか?
Ubuntu LucidでInkscape 0.47を試してみたのですが、一部のサブグラフィックがランダムに移動してしまい、出力されるPDFでは何行か短くなってしまいます。なので、グラフィックが全く違って見えるので、出力しても意味がありません
Google Chrome 16でSVGを開いてPDFに印刷してみましたが、すべての色が歪んでしまい、一部の要素も削除されてしまいます。(画面上ではSVGは問題なく表示されるのですが、印刷プレビューではすでにひどいし、生成されたPDFもひどいです)
SVGをラスタライズしたりレンダリングしたりしたくありません。SVGをビットマップ画像に変換して、画像を埋め込んだPDFを作成するソリューションは、私の質問に対する答えではありません。(FYI Inscape 0.47ではPNGにレンダリングするとアンチエイリアシングなしで非常に醜い方法でテキストがレンダリングされます。)
他にどんな選択肢がありますか?
141 pts 2012-01-22
変換したいSVGはrsvg-convertでうまくいきました
$ 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画像を部分的にラスタライズすることがありますが、これも誤解を招く可能性があります
150 pts 2012-01-22
これはUbuntu Lucidで動作します
$ sudo apt-get install inkscape
$ inkscape t.svg --export-pdf=t.pdf
上のコマンドラインでのInkscapeの呼び出しは、GUI (DISPLAY=
) がなくてもヘッドレスモードでも動作します。しかし、Inscapeをインストールすると、X11を含む多くの依存関係がインストールされます
Inskscapeの終了ステータスはエラーが発生しても常に0であることに注意してください
また、多くの文書を一括で変換するのに適した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
96 pts 2012-11-16
私はOSXとUbuntuでCairoSVGをうまく使っています
pip install cairosvg
cairosvg in.svg -o out.pdf
13 SYK 2014-12-21
Inkscape(0.47も)からPDFに印刷したり、PDFとして保存したり(ちょっと違うけど)すると良い結果が得られるのですが、これは手元のグラフィックにもよるかもしれませんね
解像度を下げた代替品(改善するためのスイッチは何も試していない)があります
convert file.svgz file.pdf
convert
はImageMagick
パッケージの一部です。Rasterizer は別のプログラムです
rasterizer -m application/pdf file.svgz -d file.pdf
svgsを扱うプログラムがシステムにインストールされているかどうかを調べるには、試してみてください
apropos -s 1 svg
これらのプログラムのためのマニュアルページは、プログラムがsvgをpdfに変換するために有用かどうかを説明する必要があります
9 user unknown 2012-01-22
https://superuser.com/a/79064/19956ではGhostPDLの一部であるgsvgについて言及しています
Ubuntu Lucidでgsvg ghostpdl-9.06を試してみましたが、Inkscapeで生成された2つのSVGで失敗しました。1つのSVGにはテキストが含まれていて、もう1つのSVGにはベクターグラフィックのみが含まれていました。また、Inkscapeの拡張機能やクリップパスのないシンプルなグラフィックでも失敗しました。ですから、私は gsvg が使える SVG-to-PDF コンバータだとは思っていません
5 pts 2012-11-16
Mac OSでは(すでにBrewがインストールされていることを考えると)私はそうしています
$ brew install cairo libffi python3
$ pip3 install cairosvg
$ cairosvg -o blah.pdf ./blah.svg
Linuxでも同じように動作するはずですが、代わりにapt-getを使ってください
3 Adriel Jr 2018-07-27
なぜ今まで言及されていないのか不思議ですが、私は様々なsvg->pdfコンバータを試してみましたが、一番良いのはHeadless Chromeだと分かりました。これは私のために最も正確な結果を生成します。Chromeに切り替える前は、Inkscapeのバグと闘っていましたが、その多くは深刻すぎて、あまり手がつけられません(透明度のバグ、間違ったフォントなど)
chrome --headless --disable-gpu --print-to-pdf="output.pdf" "input.svg"
それはカスタムPDFサイズ(A4がデフォルト)を使用するためにいくつかの調整が必要ですが、私はいくつかのググってCSSとSVG属性(この回答をチェックアウト stackoverflow)で遊んだ後にカスタムサイズを設定することができました
3 Avael Kross 2019-07-02
驚くべき解決策、アバエル・クロス(https://superuser.com/users/1057244/avael-kross)!ヘッドレスクロームは私のために素晴らしい仕事をしました
出力されたPDFからヘッダーとフッターを削除してSVGのサイズに収まるようにする手順を自動化してみました。シェルスクリプトをアップロードしたのは、以下のgistです
svg2pdf.bash。https://gist.github.com/s417-lama/84bf66de1096c4587e8187092fb41684
Usage:
$ ./svg2pdf.bash input.svg output.pdf
2 s417-lama 2020-04-29
ここで紹介されているツールの多くは、SVG 1.1を表示する際に問題があります。そのため、以下のような回避策を用いました
- ほとんどのブラウザはSVGを表示するのに最適なようです。FirefoxとChromeはSVG 1.1に完全対応しています。ブラウザでSVGを表示しただけです
- その後、PDFにページを印刷しながら:
- 画像をページにフィットさせる
- すべてのページのボーダーを 0 に設定します
- ヘッダとフッタはすべて空にしておきます
- あらかじめ定義されたページサイズとの違いができないので、その後に
pdfcrop
を使用して、SVGの正確な寸法のPDFを取得しました
1 Thomas 2020-10-26
svgファイルをImage Viewer
(Eye of Gnome eog
とも呼ばれています)で開き、それをPDFファイル(image.pdf
とします)に印刷し、そのPDFをpdf2ps
コマンドを使ってepsに変換します。簡単です
Elaborated steps:
Image Viewer
をインストールしていない場合は、Image Viewer
をインストールしてください (gnome
を使っている場合は可能性が低いステップです)sudo apt-get install eog
svgファイルを
eog
で開き、image.pdf
ファイルに印刷します(オプシ ョ ナル) pdf フ ァ イ ルから周囲の空白を除去
pdfcrop image.pdf
これは、周囲の空白を取り除いた
image-crop.pdf
を生成しますあなたがpdfをトリミングしていない場合は、直接
image.pdf
を使用して)epsにトリミングしたpdfを変換しますpdf2ps image-crop.pdf image.eps
Thats it!
0 codeman48 2017-11-05