J'ai un script shell qui prend un fichier PDF comme argument et l'imprime avec des options spécifiques à l'imprimante supplémentaires. Comment puis-je ajouter ce script en tant qu'imprimante virtuelle pouvant être sélectionnée dans l'interface graphique?
Le script shell est un script duplex manuel qui prend un fichier PDF, imprime des pages paires, donne une invite utilisateur en utilisant zenity demandant à l'utilisateur de retourner les pages, puis imprime les pages impaires.
Mon flux de travail actuel est le suivant:
- Fichier -> Imprimer -> Enregistrer dans un fichier -> tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
Existe-t-il un moyen de le faire comme:
- Fichier -> Imprimer -> my_script_as_virtual_printer
Remarque: Ceci est sur Linux menthe 13 cannelle. J'ai essayé gnome-manual-duplex
mais ça ne marche pas pour moi.
La boîte de dialogue GUI à partir de laquelle je peux imprimer dans un fichier 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
c'est le fichier de configuration pour BSD lpr ou lprNG, pas pour CUPS qui est la norme de facto de nos jours, et qui est la norme sur Mint.