PDFファイルを引数として使用し、追加のプリンタ固有のオプションを使用して印刷するシェルスクリプトがあります。このスクリプトをGUIで選択できる仮想プリンタとして追加するにはどうすればよいですか?
シェルスクリプトは、PDFファイルをインポートして偶数ページを印刷し、zenityを使用してユーザーにページをめくるように促し、奇数ページを印刷する手動両面スクリプトです。
私の現在のワークフローは次のとおりです。
- ファイル - >印刷 - >ファイルに保存 - > tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
それを作る方法はありますか?
- ファイル - >印刷 - > my_script_as_virtual_printer
注:これはLinux mint 13 cinnamonで行われました。私はそれを試しましたが、gnome-manual-duplex
私には効果がありません。
PDFファイルとして印刷できるGUIダイアログ
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:ジョブが事前にプリフックによってキャンセルされない限り、印刷ジョブが実際のプリンタに送信された後に開始が保証されます。特定の印刷キューに必要な数のポストフックを定義できます。