SVGをPDFや一般的に使用されるビットマップ形式(PNGなど)に変換する無料のLinuxコマンドラインツールはありますか?
SVGをPDFや一般的に使用されるビットマップ形式(PNGなど)に変換する無料のLinuxコマンドラインツールはありますか?
回答:
Imagemagickは、ラスタライズ(ピクセル化)出力が必要な場合(または少なくとも許容範囲内)には優れていますが、変換しようとしているもののラスタライズバージョンをPDFに効果的に埋め込むため、そうでなければ悪い選択です。svg / pdfの全体的なポイントは、ベクトル化できるため、サイズを小さくしながら、どの解像度でもスムーズに維持できることです。
そのため、InkscapeまたはCarioSVGの使用をお勧めします。後者には、この目的のために正確にいくつかのコマンドラインユーティリティがあります(svg2pdf
、svg2ps
およびsvg2png
)。唯一の問題は、基本的には単なるpython eggであるため、python環境が設定されておらず、設定するのに十分な知識がない(または気にしない)場合、そのオプションはnoです行く。私は自分自身を試してみましたが、設定の問題を抱えていた必要なlibcairo
(私は試していないことをあまりにもハード)。
Inkscapeは素晴らしいですが、すべての作業をすばやく簡単にコマンドで実行したい場合、cliは少し不格好です。これをすべて処理してくれる小さなスクリプトをいくつか作成しました。
svg2pdf
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-pdf="$(basename $i .svg).pdf" $i
done
svg2png
#!/bin/bash
for i in $@; do
inkscape --without-gui --export-png="$(basename $i .svg).png" $i
done
最初のものを~/bin/svg2pdf
に、後者をに入れ、両方で~/bin/svg2png
実行chmod +x
して実行可能にし、ブームになります!InkscapeのCLIがどのように機能するかを考えたり覚えたりする必要のない、これらの頻繁に必要な操作への迅速かつ簡単なショートカットがあります。(明らかに、これが機能する前にInkscapeをインストールする必要があります)
time for i in {1..10}; do time inkscape --without-gui -f "drawing.svg" --export-pdf="drawing$i.pdf"; done;
実0m2.192s time for i in {1..10}; do convert drawing.svg drawing$i$i$i.pdf; done;
実0m0.381s
Image Magickがあり、Inkscapeにはコマンドラインツールもあります。
convert
はるかに勝ちます。存在すら知らなかった難解なフォーマットとの間で変換を行い、必要以上に多くの効果を適用することもできます。
convert
、ImageMagickのコマンドラインツールです。
Inkscape
PDFへ:
inkscape -A a.pdf a.svg
PNGへ:
inkscape -e a.png a.svg
で発見man inkscape
し、どのようにコマンドラインモードでのInkscapeを使用します
mogrify -format pdf -- *.svg