Eu tenho um script de shell que pega um arquivo PDF como argumento e o imprime com opções específicas adicionais da impressora. Como posso adicionar esse script como uma impressora virtual que pode ser selecionada na GUI?
O shell script é um script dúplex manual que pega um arquivo PDF, imprime páginas pares, fornece um prompt do usuário usando o zenity, solicitando que o usuário vire as páginas e depois imprima as páginas ímpares.
Meu fluxo de trabalho atual é:
- Arquivo -> Imprimir -> Salvar no arquivo -> tmp.pdf
my_duplex_script tmp.pdf
rm tmp.pdf
Existe alguma maneira de fazê-lo como:
- Arquivo -> Imprimir -> my_script_as_virtual_printer
Nota: Este é no Linux mint 13 canela. Eu tentei, gnome-manual-duplex
mas não funciona para mim.
A caixa de diálogo GUI a partir da qual eu posso imprimir em um arquivo 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
fonte
printcap
é o arquivo de configuração do BSD lpr ou lprNG, não do CUPS, que é o padrão de fato atualmente e é o padrão no Mint.cups-bsd
pacote, que também está disponível no Mint, por padrão, instalado e também bem suportado.cups-bsd
não é lprng! É apenas um invólucro, que fornece a funcionalidade da impressão BSD para copos, a fim de oferecer suporte a aplicativos usadoslpr
para impressão (por exemplo, xpdf).Cheguei atrasado na festa, mas queria fazer a mesma coisa e não encontrei outra solução.
Vou escrever aqui como resolvi, talvez outros achem a solução útil.
o código fonte está no github: https://github.com/dentys03/manual_duplex_linux
Ele deve funcionar em qualquer impressora HP. Facilmente adaptado para outras impressoras, eu acho.
fonte