web-dev-qa-db-ja.com

イメージビューアー(eog)またはlprを使用してコマンドラインからsvgファイルを印刷するにはどうすればよいですか?

コマンドビューから画像ビューアー(つまりgnomeの目)経由で、またはlprを使用してsvgファイルを印刷することは可能ですか?

根本的な問題は、多数のsvgファイルを含むディレクトリがあり、画像ビューアーで各ファイルを個別に開いてからUIを使用して印刷することなく、それらすべてを自動的に印刷することです。 eog内の印刷オプションを変更する必要はありません(デフォルトはすべて正常に機能します)。

lprコマンドはここでは役に立たないように思われることに注意してください-svgファイルに適用すると、XMLの多くのページを印刷するだけです。 XMLではなくsvgで画像を印刷するためにlprを取得することを含むあらゆるソリューションに満足しています。

3
Colin T Bowers

あなたが経験したようにlprはsvgファイルのみをXMLとして印刷します(したがって、テキストで満たされたページのみを印刷します)。

ただし、svgファイルをその場でpngなどの実行可能なものに変換するという非常に簡単な回避策がありますそして自動的にこれらの生成されたファイルを印刷します。次の2つの手順が必要です。

ステップ1: imagemagickのインストール:

Sudo apt-get install imagemagick

ステップ2:「デフォルト」プリンターでlpが正しく構成されている限り、svgファイルを含むディレクトリ内からターミナル画面で次のループを実行します。

for i in *.svg
do
convert "$i" png:- | lpr
done

説明:

この「ループ」は次のことを実現します。

  1. ディレクトリ内の各svgファイルを順番に処理
  2. convertユーティリティ(imagemagickの一部)を使用して、すべてのsvgファイルからpngファイルを生成します
  3. 各pngファイルをstdoutに渡します(ディスクに永続的に書き込むのではなく)
  4. lprを使用してこのファイルを印刷します

これは私自身のシステムで完全にテストされており、あなたのシステムでも同様に動作するはずです:)。

4
andrew.46