web-dev-qa-db-ja.com

特定のプリンタのスクリプトを使用してCUPSの `lp`を前処理するにはどうすればよいですか?

(方法)スクリプトでlpを自動的に前処理することは可能ですか?中間の配管(fileToPrint | script.sh | lp -d myPrinterlpを直接実行するソースコードがたくさんあるので、私には選択肢がありません(lp -d myPrinter filetoPrint)現在、これを変更する意図はありません。特に、スクリプトは1つの特定のプリンターにのみ必要であるためです。

lpoptionのようなものを考えています(pseduocode)preprocess myPrinter with script.sh(myPrinterのみで、myOtherPrinterではありません)。

これはどういうわけか可能ですか?

1
Foo Bar

私はつまずいたtea4cups(Debianではパッケージはcups-tea4cups)、次のように、私がやりたいことを正確に行うことができます。

# tea4cups.conf
[myprinter] # just the cups printer name
filter: mycommand
# pipes everything though mycommand, like "<input> | mycommand | lp"
# if the printer URI is prefixed with 'tea4cups://'
0
Foo Bar

独自のバックエンドを作成する 前処理を実行し、通常使用している実際のバックエンドにそれを渡すことができます。プリンターをセットアップするときは、URIでカスタムバックエンドを使用します。

私は実際に、CUPSがローカルにパッチを適用したLPRngサーバーに印刷できるようにするために同様のことを行いました。

2
jsbillings