Bir PDF dosyasını bağımsız değişken olarak alan ve ek yazıcıya özel seçeneklerle basan bir kabuk komut dosyası var. Bu komut dosyasını GUI'den seçilebilen sanal bir yazıcı olarak nasıl ekleyebilirim?
Kabuk betiği, bir PDF dosyası alan, çift sayfaları yazdıran, kullanıcıdan sayfaları çevirmesini isteyen ve daha sonra tek sayfaları basan bir kullanıcı istemi veren manuel bir dubleks betiğidir.
Mevcut iş akışım:
- Dosya -> Yazdır -> Dosyaya kaydet -> tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
Bunu yapmanın herhangi bir yolu var mı:
- Dosya -> Yazdır -> my_script_as_virtual_printer
Not: Bu Linux nane 13 tarçın. Denedim gnome-manual-duplex
ama benim için çalışmıyor.
PDF dosyasına yazdırabileceğim GUI iletişim kutusu
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 veya lprNG için yapılandırma dosyası olduğunu unutmayın, günümüzde fiili standart olan ve Mint'de standart olan CUPS için değil.