postscript 3 允许在同一页上使用多个半色调网屏吗?

Is using multiple halftone screens on the same page allowed in postscript 3?

我正在处理一个在同一页面上多次使用 sethalftone 的后记文件。在我的打印机上我得到了预期的结果,但是当使用 ghostscript 时,整个页面都呈现在同一个屏幕上。我把它简化为这个例子:

%!PS-Adobe-3.0

<< /PageSize [99 33] >> setpagedevice

/size 33 def

/rect {
newpath
0 0 moveto
size 0 lineto
size size lineto
0 size lineto
closepath
fill
} def

0.5 0.5 0.5 0.5 setcmykcolor
rect

<< /HalftoneType 1 /Frequency 100 /Angle 60 /SpotFunction { pop } >> sethalftone
size 0 translate
rect

<< /HalftoneType 1 /Frequency 100 /Angle 45 /SpotFunction { pop } >> sethalftone
size 0 translate
rect

showpage

gs -dNOPAUSE -dBATCH -r600 -sDEVICE=tiffsep1 -sOutputFile=test%d.tif test.ps(版本 9.52)为我提供了以下频道图像(所有频道都相同):

在第一个 rect 命令之前移动第一个 sethalftone 时,我得到了这些通道图像,其中包含伪影并且仍然具有相同的半色调:

显然,半色调缓冲区中存在某种内存损坏。 一开始只设置一个半色调(在使用默认值之前)效果很好。

所以我的标题问题仍然存在:是否允许在后记的同一页上使用多个不同的半色调?

PS:当将每个矩形和半色调分离到其自己的页面时,我仍然遇到内存损坏,但半色调似乎应用不同。

您可以在 PostScript 程序运行过程中随时更改半色调。它不需要位于页面的开头或程序的开头。