use*_*551 10 printing cups shell-script
我有一个 shell 脚本,它将 PDF 文件作为参数并使用附加的打印机特定选项打印它。如何将此脚本添加为可以从 GUI 中选择的虚拟打印机?
shell 脚本是一个手动双面脚本,它接受一个 PDF 文件,打印偶数页,使用 zenity 给用户提示,要求用户翻转页面,然后打印奇数页。
我目前的工作流程是:
my_duplex_script tmp.pdfrm tmp.pdf有什么办法可以使它成为:
注意:这是在 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
Run Code Online (Sandbox Code Playgroud)
我从来没有尝试过这个,但是有一个名为的工具tea4cups听起来像是您可以对脚本实施预挂钩来进行打印。然后,您可以取消此打印,而不是通过杯子实际转到真正的打印机,而是允许您的脚本进行打印。
摘抄
可能性是无止境 :
- 同时将同一作业发送到多台打印机,而这对于 CUPS 来说是不可能的。
- 自动对所有打印作业进行 PDF 归档。
- 禁止重复的打印作业(示例配置文件中显示了一个简单的示例)
- 在 15 分钟内创建打印会计解决方案(是的,这是真的)
- ETC...
Tea4cups 提供以下便利:
Tea4CUPS 提供了三种启动命令的方式:
- 过滤器:过滤器可以在将输入数据发送到打印机或供下面定义的前挂钩和后挂钩使用之前修改输入数据。目前,每个打印队列可以定义一个过滤器。
- prehooks :这些保证在打印作业发送到真实打印机之前启动。任何退出 -1 的 prehook 都可以取消打印作业。可以为特定的打印队列定义任意数量的预挂钩。
- posthooks :这些保证在打印作业发送到真实打印机后启动,除非作业之前被 prehook 取消。可以为特定的打印队列定义任意数量的 posthook。
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |