Tôi có một tập lệnh shell lấy tệp PDF làm đối số và in nó với các tùy chọn cụ thể của máy in. Làm cách nào tôi có thể thêm tập lệnh này dưới dạng máy in ảo có thể được chọn từ GUI?
Tập lệnh shell là tập lệnh song công thủ công lấy tệp PDF, in các trang chẵn, đưa ra lời nhắc người dùng bằng cách sử dụng zenity yêu cầu người dùng lật các trang và sau đó in các trang lẻ.
Quy trình làm việc hiện tại của tôi là:
- Tệp -> In -> Lưu vào tệp -> tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
Có cách nào để làm cho nó như:
- Tệp -> In -> my_script_as_virtual_printer
Lưu ý: Đây là trên Linux mint 13 quế. Tôi đã cố gắng gnome-manual-duplex
nhưng nó không làm việc cho tôi.
Hộp thoại GUI mà tôi có thể in thành tệp PDF
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
là tệp cấu hình cho BSD lpr hoặc lprNG, không phải cho CUPS là tiêu chuẩn thực tế hiện nay và là tiêu chuẩn trên Mint.