我有一个Shell脚本,该脚本以PDF文件为参数,并使用其他打印机特定的选项进行打印。如何将此脚本添加为可从GUI选择的虚拟打印机?
Shell脚本是一个手动双工脚本,可获取PDF文件,打印偶数页,使用zenity提示用户提示,要求用户翻转页面然后打印奇数页。
我当前的工作流程是:
- 文件->打印->保存到文件-> tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
有什么办法使其成为:
- 文件->打印-> my_script_as_virtual_printer
注意:这是在Linux薄荷13肉桂上。我已经尝试过,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
printcap
是BSD lpr或lprNG的配置文件,而不是CUPS的配置文件,CUPS是当今的事实上的标准,也是Mint上的标准。