コマンドラインから、a4サイズに既にスケーリングされているSVGを印刷するにはどうすればよいですか?を使用してみましたlpr
が、代わりにプリンタがファイルの実際のXMLを出力しただけで、望んでいませんでした。
コマンドラインから、a4サイズに既にスケーリングされているSVGを印刷するにはどうすればよいですか?を使用してみましたlpr
が、代わりにプリンタがファイルの実際のXMLを出力しただけで、望んでいませんでした。
回答:
Inkscapeは、SVGからPDFへの変換を含む、さまざまなベクターグラフィック形式間で変換できます。通常はGUIアプリケーションですが、Xサーバーが利用できなくてもバッチモードで実行できます。
inkscape --without-gui --export-pdf=foo.pdf foo.svg
lpr foo.pdf
または直接印刷したい場合:
inkscape --without-gui --export-pdf=/dev/stdout foo.svg | lpr
別の可能性は、Apache Batikライブラリです。ただし、そのライブラリFopに基づくコマンドラインツールはありますが、SVG入力を使用する方法がないように思われるため、Javaで少しグルーコードを記述する必要があります。
ご指摘のとおり、SVGファイルは単なるxmlテキストです。そのデータを直接プリンターにダンプしても、何も得られません。必要なのは、そのデータをレンダリングできるプログラムです。あなたは、ファイルがすでにスケーラブルなベクトルデータの単なる座標空間であるA4サイズにスケーリングされていると言います。レンダリングされません。
しかし、絶望しないでください!コマンドラインからデータをレンダリングできるプログラムはたくさんありますが、すべてを一度にレンダリングして印刷することさえできるプログラムもあります。通常GUIを使用すると予想される、より重いウェイトプログラムのコマンドラインフラグを調べる必要があります。
たとえば、コマンドラインでLibreOfficeを使用して、ファイルを開いて印刷したり、別の形式に変換したりできることを知っています。unoconvと呼ばれる便利なコマンドラインユーティリティがあり、送信する必要のあるすべてのフラグを単純化することにより、変換プロセスを大幅に簡単にします。
Gimpには、開いたり、変換したり、保存したり、印刷したりするためのコマンドラインフラグもあります。ImageMagickなどの古いスタンバイの一部は、SVGファイルを指定されたサイズのレンダリングされた画像に変換することもできます。Inkscapeのような他のアプリケーションでもこれができると思います。
画像を取得したら、コマンドラインから簡単に印刷できます。これを頻繁に行う場合、変換して印刷するための短い2行のスクリプトを書くことができます。