Acroread转换PDF文件为PostScript分割错误

我们的客户有一个运行Java Web应用程序的Linux服务器(Redhat)。 最近有要求提交PDF文件到打印机打印出来。

我们使用的命令是cat /path/to/pdf_file | acroread -toPostScript | lp -dprintername cat /path/to/pdf_file | acroread -toPostScript | lp -dprintername cat /path/to/pdf_file | acroread -toPostScript | lp -dprintername 。 但是我们得到错误lp: stdin is empty; so no job has been sent lp: stdin is empty; so no job has been sent

打印一个正常的文件,如/ etc / hosts,使用这个命令lp -dprintername /etc/hosts工作,我们可以在打印机上看到打印输出。 lp命令不是问题。

我继续testing其他2个命令cat /path/to/pdf_file | acroread -toPostScript cat /path/to/pdf_file | acroread -toPostScript和我看到了输出Segmentation fault

为了进一步解决这个问题,我使用了像cat /pdf_file | strace -f -o /tmp/acroread.$$.trace acroread -toPostScript这样的strace命令 cat /pdf_file | strace -f -o /tmp/acroread.$$.trace acroread -toPostScript 。 从跟踪文件中,我看到这些行在发生分段错误之前。

 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 

当我做了/home/oracle/.adobe/Acrobat/9.0/Temp/目录的列表时,所有的文件都是零字节大小。

所以,我的问题是什么可能导致分段错误? 这是Acrobat Reader版本中的错误吗?

Acrobat Reader版本是9.4。

RedHat版本是红帽企业Linux服务器版本5.7(Tikanga)。 内核是Linux SCHPOAPS1 2.6.18-274.el5#1 SMP Fri Jul 8 17:36:59 EDT x86_64 GNU / Linux。

我认为,这是acroread问题,当它要两次打开文件/home/oracle/.adobe/Acrobat/9.0/Temp/AdobeTempPS7XwXNz

你可以使用pdf2ps而不是acroread

我们通过删除当前的Acrobat Reader(版本9.4)和安装更高版本(9.5.5)来解决这个问题。