Corrigimos isso removendo o Acrobat Reader atual (ver 9.4) e instalando uma versão superior um (9.5.5).
Nosso cliente tem um servidor Linux (Redhat), que executa aplicativos da Web Java. Recentemente, há um requisito para enviar arquivos PDF para impressoras a serem impressas.
O comando que estamos usando é cat /path/to/pdf_file | acroread -toPostScript | lp -dprintername
. Mas estamos recebendo o erro lp: stdin is empty; so no job has been sent
.
Imprimindo um arquivo normal, como / etc / hosts, usando este comando lp -dprintername /etc/hosts
funciona, e podemos ver a impressão na impressora. O comando lp
não é o problema.
Oi continuei a testar os outros 2 comandos cat /path/to/pdf_file | acroread -toPostScript
e vi a saída Segmentation fault
.
Para solucionar ainda mais esse problema, usei o comando strace como cat /pdf_file | strace -f -o /tmp/acroread.$$.trace acroread -toPostScript
. Do arquivo de rastreio, vi essas linhas antes que a falha de segmentação ocorresse.
stat64("/home/oracle/.adobe", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
16673 stat64("/home/oracle/.adobe/Acrobat", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
16673 stat64("/home/oracle/.adobe/Acrobat/9.0", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
16673 stat64("/home/oracle/.adobe/Acrobat/9.0/Temp", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
16673 open("/home/oracle/.adobe/Acrobat/9.0/Temp/AdobeTempPS7XwXNz", O_RDWR|O_CREAT|O_EXCL, 0600) = 4
16673 close(4) = 0
16673 unlink("/home/oracle/.adobe/Acrobat/9.0/Temp/AdobeTempPS7XwXNz") = 0
16673 open("/home/oracle/.adobe/Acrobat/9.0/Temp/AdobeTempPS7XwXNz", O_RDWR|O_CREAT|O_TRUNC, 0666) = 4
16673 getcwd("/var/spool/mail"..., 1024) = 16
16673 open("/home/oracle/.adobe/Acrobat/9.0/Temp/AdobeTempPS7XwXNz", O_RDONLY) = 5
16673 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
16673 +++ killed by SIGSEGV +++
16720 <... waitpid resumed> 0x3, WNOHANG|WCONTINUED|0x7410) = 0
Quando eu fiz uma listagem do diretório /home/oracle/.adobe/Acrobat/9.0/Temp/, todos os arquivos têm tamanho zero byte.
Então, minha pergunta é o que poderia ter causado a falha de segmentação? É um bug nesta versão do Acrobat Reader?
A versão do Acrobat Reader instalada é 9,4.
A versão RedHat é o Servidor Red Hat Enterprise Linux versão 5.7 (Tikanga). O kernel é Linux SCHPOAPS1 2.6.18-274.el5 # 1 SMP Fri Jul 8 17:36:59 EDT x86_64 GNU / Linux.
Eu acho que é um problema comum, quando ele quer abrir o arquivo /home/oracle/.adobe/Acrobat/9.0/Temp/AdobeTempPS7XwXNz
duas vezes.
Você pode usar pdf2ps
em vez de acroread
?