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
sumber
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.cups-bsd
paket, yang juga tersedia di Mint, secara default diinstal dan juga didukung.cups-bsd
tidak lprng! Ini hanya pembungkus, yang menyediakan fungsionalitas pencetakan BSD untuk Piala untuk mendukung aplikasi yang digunakanlpr
untuk mencetak (yaitu xpdf).Terlambat ke pesta, tetapi saya ingin melakukan hal yang sama dan saya tidak menemukan solusi lain.
Saya akan menulis di sini bagaimana saya menyelesaikannya, mungkin orang lain akan menemukan solusi yang bermanfaat.
kode sumber ada di github: https://github.com/dentys03/manual_duplex_linux
Ini harus bekerja pada semua printer HP. Mudah disesuaikan untuk printer lain, saya kira.
sumber