当我运行 ps2pdf 时收到以下错误消息:
norman@host:~$ ps2pdf test.ps test.pdf
While reading gs_dbt_e.ps:
ERROR: /syntaxerror in -file-
Operand stack:
(gs_cidfm.ps) 1 --nostringval--
Execution stack:
%interp_exit --nostringval-- --nostringval-- --nostringval-- %array_continue --nostringval-- --nostringval-- false 1 %stopped_push --nostringval-- --nostringval-- --nostringval--
Dictionary stack:
--dict:928/1123(G)-- --dict:0/20(G)-- --dict:74/200(L)-- --dict:928/1123(G)-- --dict:8/8(G)-- --dict:1/1(G)--
Current allocation mode is global
Current file position is 4623
norman@host:~$
我尝试重新安装 gs 和 gs-esp,但没有任何影响。文件 test.ps、gs_dbt_e.ps 和 gs_cidfm.ps 都经过了系统检查,结果显示一切正常。无论我尝试转换哪个 postscript 文件,“当前文件位置为 4623”都保持不变。主机运行的是 Ubuntu 7.04。
如能得到关于我应该重新安装什么的任何建议,我将非常感激。
答案1
你的 Ubuntu 上用的 Ghostscript 是哪个版本的?你可以用命令检查gs -v
。最新发布的是 v8.71。
您的问题可能来自两个方面:
- 您的文件“test.ps”包含一个错误(无效的 PostScript 代码)。一些 PS 错误可以通过以下方法解决一些有些查看器和 PS 处理器,有些则不是。
- 您的 Ghostscript 版本包含一个错误,该错误是由“test.ps”中包含的某些程序触发的。
如果无法访问您的“test.ps”文件,我就无法判断。
我建议您尝试使用较新版本的 Ghostscript 来处理“test.ps”。不要使用该ps2pdf
实用程序。ps2pdf 只是一个小型 shell 脚本,它试图简化 Ghostscript 的 PDF 生成使用,但同时却遗留了很多 Ghostscript 的功能。
最好直接使用gs
。像这样:
gs \
-sDEVICE=pdfwrite \
-dNOPAUSE \
-dBATCH \
-dSAFER \
-sCompatibilityLevel=1.4 \
-dPDFSETTINGS=/prepress \
-sOutputFile=/path/to/test.pdf \
-c ".setpdfwrite" \
-f /path/to/test.ps