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
la source
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.cups-bsd
package, qui est également disponible sur Mint, installé par défaut et également bien pris en charge.cups-bsd
n'est pas lprng! Ce n'est qu'un wrapper, qui fournit les fonctionnalités d'impression BSD pour les gobelets afin de prendre en charge les applications qui utilisentlpr
pour l'impression (c'est-à-dire xpdf).Tard dans la fête, mais je voulais faire la même chose et je n'ai pas trouvé d'autre solution.
J'écrirai ici comment je l'ai résolu, peut-être que d'autres trouveront la solution utile.
le code source est sur github: https://github.com/dentys03/manual_duplex_linux
Il devrait fonctionner sur n'importe quelle imprimante HP. Facilement adapté aux autres imprimantes, je suppose.
la source