1

我正在尝试使用 PostScript 的 ASCII85Decode 过滤器。将以下行添加到我的 PS 文件中可以正常工作,即字母 XYZ 在页面上正确显示:

200 300 translate 0 0 moveto (XYZ) show

然后,我使用在线工具对上述行进行了 ASCII85 编码,并将包含编码字符串的以下片段(如 PLRM 中所建议)放入我的 PS 文件中与前一行相同的位置:

currentfile /ASCII85Decode filter cvx exec 
<~1,(C)1GCL*FE1f-F)59,AKWZL0Hb4NG%Gc6+=L>p=t(S8BQ&)%~>

生成的 PS 文件在 GSView 控制台中给我以下错误:

Error: /undefined in T
Operand stack:

Execution stack:
%interp_exit   .runexec2   --nostringval--   --nostringval--   --    nostringval--   2   %stopped_push   --nostringval--   --nostringval--   false   1   %stopped_push   1926   1   3   %oparray_pop   1925   1   3   %oparray_pop   1909   1   3   %oparray_pop   1803   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:
--dict:1176/1684(ro)(G)--   --dict:0/20(G)--   --dict:83/200(L)--   --dict:139/150(L)--
Current allocation mode is local
Last OS error: No such file or directory

我希望 ASCII85Decoder 对编码的字符串进行解码,并且字母“XYZ”会出现在页面上。

我究竟做错了什么?

4

1 回答 1

1

嗯,第一个问题是你没有选择字体,所以内部 exec 抛出错误。如果你使用这个:

200 300 translate 0 0 moveto /Helvetica findfont 20 scalefont setfont (XYZ) show

它会更好地工作。您还没有说您使用的是哪个版本的 Ghostscript(或哪个操作系统),但您的字符串没有给我一个错误。但是将上面的字符串编码为:

1,(C)1GCL*FE1f-F)59,AKWZL0Hb4NG%Gc6+>68sCj'B3Bk(QoAnc-nAoDR/+>PVnF(8WpAS,ju
F<GX9FCoH/F<Du6=^!6sF(fK9~>

(注意 ,ju 后面有一个 0x0a)

导致在输出上绘制 XYZ。

于 2016-03-05T22:08:41.590 回答