Saya memiliki skrip shell yang mengambil file PDF sebagai argumen dan mencetaknya dengan opsi spesifik printer tambahan. Bagaimana saya bisa menambahkan skrip ini sebagai printer virtual yang dapat dipilih dari GUI?
Skrip shell adalah skrip dupleks manual yang mengambil file PDF, mencetak halaman genap, memberikan prompt pengguna menggunakan zenity meminta pengguna untuk membalik halaman dan kemudian mencetak halaman ganjil.
Alur kerja saya saat ini adalah:
- File -> Cetak -> Simpan ke file -> tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
Apakah ada cara untuk menjadikannya sebagai:
- File -> Print -> my_script_as_virtual_printer
Catatan: Ini ada di Linux mint 13 cinnamon. Saya sudah mencoba gnome-manual-duplex
tetapi tidak berhasil untuk saya.
Dialog GUI dari mana saya dapat mencetak ke file 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
ini adalah file konfigurasi untuk BSD lpr atau lprNG, bukan untuk CUPS yang merupakan standar de facto saat ini, dan merupakan standar pada Mint.