コマンドラインから印刷する


28

コマンドライン出力を直接プリンターに印刷するにはどうすればよいですか。

私はubuntuサーバー12.04を使用しています。ファイルを共有ディレクトリにコピーし、デスクトップubuntuディストリビューションからダウンロードして印刷する必要があります。

どんな助けでも大歓迎です


プレーンテキストとPDFのどちらを印刷するかは言いませんでした。一部のシステムは、標準のテキストのみをサポートしているため、これをカバーする必要があります。
アレクシス14年

なぜ彼らが私の答えに賛成票を投じるのかわからない、試してみてください。
nux 14年

@nux +1すべての答えは素晴らしいすべてのおかげです
カミル14年

@alexis私は明確だ:コンソール出力を印刷したい。プリンタに直接例LS出力用
カミル

おっと、確かにあなたは言った、私はそれを逃した、ごめんなさい!
アレクシス14年

回答:


35

主に2つのデフォルトコマンドがあります。

lpr そして lp

man lpr 出力を与えます:

lprは印刷用のファイルを送信します。コマンドラインで指定されたファイルは、指定されたプリンター(または宛先が指定されていない場合はデフォルトの宛先)に送信されます。コマンドラインにファイルがリストされていない場合、lprは標準入力から印刷ファイルを読み取ります。

man lp 出力を与えます:

lpは、印刷のためにファイルを送信するか、保留中のジョブを変更します。標準入力からの印刷を強制するには、「-」のファイル名を使用します。

次のコマンドを簡単に使用できます。

lp /path-to-file-to-print

または

lpr /path-to-file-to-print

15

使用できます lp

例えば:

man firefox | lp -d printername

これにより、Firefoxから指定されたプリンターにmanページが印刷されます


1
おかげでo fit-to-page、ページ上のテキストを少し良くするためにも使用する必要がありました。man bash | lp -o media=letter -o portrait -o fit-to-page --最後に標準入力が読み取られるようにします。
イライジャ・リン

1
プリンターがデフォルトの場合、-dパラメーターは必要ありません。Unityを使用するUbuntuでは、[検索]ボタンをクリックしてデフォルトのプリンターを設定し、「print」と入力すると、デフォルトを設定できる適切な場所に移動します。また、lpこの例では、しばらくの間Unixを使用していると書かれています。 lprUbuntuでも同じように動作します。
–SDsolar

4

それらをインストールしている場合、知っておく価値のあるもう1つのオプションのペアは

そして

これらは、番号付きページに見出しとオプションの行番号を提供するのに役立ちます。その後、それを使用して小冊子スタイルを印刷することもできます(たとえば、シートの各面に2ページ)

これらをPostscript対応プリンターで使用しますが、Ubuntuの印刷システムは、サポートされているプリンターのPSをラスタライズできると考えています。


これは素晴らしいアイデアです
カミル

確かにポストスクリプトを直接コーディングするよりも優れています。
–SDsolar

3

最初にプリンタにアクセスする方法を知りたい場合があります- lpstatその情報を提供します。両方のシステムで出力を比較すると、おそらく両方のシステムで問題のプリンターが構成されているかどうかを確認できます。lpstat -p -dすべてのプリンターとそのステータスをリストし、どのプリンターがデフォルトのプリンターとして設定されているかを示します。

次に、出力をlpor lprコマンドにパイプするだけです。ただし、プリティプリンティングやページネーション用のフィルターを挿入することもできます。debianマニュアル「プレーンテキストデータのハイライトとフォーマット」にはツールの概要がありますが、通常はsedすべてを送信する前にプロンプ​​トやその他のものを強調表示するためだけに使用していますa2ps


2

useで.txtファイルを印刷するには:

command | lpr -P printername -p ( periority from 1 to 100 )

例:

ls -l | lpr -P printername -p 1 

1

問題は、サーバー上のコマンドラインから印刷する方法に関するものであり、そのシステムで定義されているプリンターがまだないようです。チェックするシステムがないので、次のように概算しますが、一般的な考え方がわかるはずです。

  1. CUPSシステムがインストールされ、実行されていることを確認してください。印刷ジョブを処理するデーモンを提供します。
  2. これが起動したら、1つ以上のネットワークプリンターをセットアップして印刷する必要があります。プリンターをインストールする通常の方法は、プリンター管理ユーティリティを使用することですが、サーバーからGUIプログラムを実行するように設定されていないことは明らかです。sshを介したコマンドラインアクセスだけです。同じネットワーク上にすでにUbuntuデスクトップシステムがあるので、ディレクトリの内容を/etc/cupsデスクトップボックスからサーバーにコピーしてみます。必要なすべてのプリンター定義とドライバーが含まれている必要があります。必要な調整についてファイルを確認し(セットアップで2つのシステム間で異なるユーザーIDまたはパスワードが記載されている場合)、再起動しcupsd、運が良ければlprコマンドラインからの印刷に使用できます。

PS。ピンチでは、デスクトップUbuntuボックスへのリモートX接続を介してPrint Admin GUI ユーティリティを実行するために十分なXユーティリティをインストールし(でログインssh -X)、必要なプリンターを定義できます。しかし、うまくいけば、これは必要ではないでしょう。


1

このlpコマンドを使用できます。

コマンドの出力をデフォルトのプリンターに印刷するlpstat -dには(デフォルトのプリンターを確認するために使用します):

echo "test" | lp

特定のプリンターに印刷するには(使用lpstat -p | awk '{print $2}'可能なプリンター名をリストするために使用):

echo "test" | lp -d printername

コマンド出力ではなくファイルを印刷するには:

lp /path/to/file
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.