シェルスクリプトを仮想プリンタとして使用

シェルスクリプトを仮想プリンタとして使用

PDFファイルを引数として使用し、追加のプリンタ固有のオプションを使用して印刷するシェルスクリプトがあります。このスクリプトをGUIで選択できる仮想プリンタとして追加するにはどうすればよいですか?

シェルスクリプトは、PDFファイルをインポートして偶数ページを印刷し、zenityを使用してユーザーにページをめくるように促し、奇数ページを印刷する手動両面スクリプトです。

私の現在のワークフローは次のとおりです。

  1. ファイル - >印刷 - >ファイルに保存 - > tmp.pdf
  2. my_duplex_script tmp.pdf
  3. rm tmp.pdf

それを作る方法はありますか?

  1. ファイル - >印刷 - > my_script_as_virtual_printer

注:これはLinux mint 13 cinnamonで行われました。私はそれを試しましたが、gnome-manual-duplex私には効果がありません。


PDFファイルとして印刷できるGUIダイアログ 標準GTK印刷ダイアログボックス

my_duplex_script

#!/bin/bash

lp_args=
while getopts o: opt
do
    case "$opt" in
        o)  lp_args="$lp_args -o $OPTARG" ;;
        \?) echo >&2 Invalid argument; exit 1 ;;
    esac
done
shift `expr $OPTIND - 1`

file=$1
page_count=$(pdfinfo "$file" | grep Pages | awk '{print $2}')
is_odd=`expr $page_count % 2`

if [ $is_odd -eq 1 ]
then
    #outputting blank
    echo | lp -s -t "$file"-blank
fi

#printing even reversed
lp -s -o page-set=even -o outputorder=reverse $lp_args -t "$file"-even "$file"

if zenity --question --text="Flip and reinsert the entire stack when printing has finished." --ok-label="Proceed" --cancel-label="Cancel"
then
    #printing odd reversed
    lp -s -o page-set=odd -o outputorder=reverse $lp_args -t "$file"-odd "$file"
else
    echo >&2 User abort
    exit 1
fi

exit 0

ベストアンサー1

私はこれを試したことがありませんが、次のツールがあります。tea4cups印刷を実行するためにスクリプトにプリフックを実装できるようです。その後、この印刷をキャンセルして、カップが実際に実際のプリンタに行くのではなく、スクリプトを印刷できるようにすることができます。

抜粋

可能性は無関心です:

  • CUPSでは、同じジョブを複数のプリンタに同時に送信することはできません。
  • すべての印刷ジョブを自動的にPDFとして保存します。
  • 重複印刷ジョブの抑制(サンプル構成ファイルに簡単な例が表示されています)
  • 15分で印刷会計ソリューションを作成する(はい、そうです)
  • など...

Tea4cupsは次のような利便性を提供します。

Tea4CUPS は、コマンドを開始する 3 つの方法を提供します。

  • フィルタ:フィルタは、入力データがプリンタに送信される前、または以下に定義されているプリフックおよびポストフックで使用される前に入力データを変更できます。現在の印刷キューごとに1つのフィルタを定義できます。
  • prehooks:印刷ジョブが実際のプリンタに送信される前に開始されることが保証されます。 -1を終了するフリーフックは印刷ジョブをキャンセルできます。特定の印刷キューに対して必要な数のプリフックを定義できます。
  • posthooks:ジョブが事前にプリフックによってキャンセルされない限り、印刷ジョブが実際のプリンタに送信された後に開始が保証されます。特定の印刷キューに必要な数のポストフックを定義できます。

おすすめ記事