Nosso aplicativo herdado usa comandos LP no Solaris 5.10 para imprimir arquivos de relatório em impressoras em toda a nossa organização. No entanto, agora temos um local remoto que não terá acesso a uma impressora (pelo menos não em uma rede confiável), por isso estou tentando configurar uma maneira de o spooler de impressão interceptar o arquivo e executar o utilitário txt2pdf nele, que é configurado para enviar a saída por e-mail para um endereço de e-mail específico. Dessa forma, não precisamos voltar e alterar todos os métodos de impressão de aplicativos apenas para esse local.
Fazemos alguns filtros personalizados nesses spoolers de impressão antigos para várias coisas, então achei que poderia usar isso para, em vez de adicionar feeds de formulário ao trabalho como um de nossos filtros atuais, em vez disso, executar o arquivo por txt2pdf e depois saída para uma impressora nula.
case "$TERM" in
PS )
# make the "postscript" printers use postio to
# talk to the printer and periodically get a
# status from them
FILTER="/usr/lib/lp/postscript/postio"
;;
pptestterm)
FILTER="/usr2/dms/run/txt2pdf/txt2pdf - -landscape|lp -s -d NULL"
;;
(o solitário '-' no comando txt2pdf diz para usar stdin e stdout)
Obviamente, isso não está funcionando e estou lutando para encontrar o entendimento exato de como o LP aplica essas interfaces / filtros.
Esta é a mensagem de erro no logfile quando a configuração acima é usada:
06/04 14:56:53: printer fault. type: write root, status: c
msg: (txt2pdf: couldn't open temporary file ./txt2pdf18653)
Alguma recomendação sobre como isso pode funcionar?