附言3是否允许在同一页面上使用多个半色调网屏?

问题描述

我正在使用在同一页面上多次使用sethalftone的Postscript文件。在我的打印机上,我得到了预期的结果,但是当使用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)为我提供了以下通道图像(所有通道都相同):

All three panels have the same halftone

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

Magenta channel

Black channel

Cyan channel

Yellow channel

很明显,半色调缓冲区中存在某种内存损坏。 在开始时只设置一个半色调(在使用认值之前)可以正常工作。

所以标题中的问题仍然存在:是否可以在附言的同一页上使用多个不同的半色调?

PS:将每个矩形和半色调分离到自己的页面上时,我仍然会遇到内存损坏的情况,但是半色调的应用方式似乎有所不同。

解决方法

您可以在PostScript程序的任何时候更改半色调。不必在页面开头或程序开头。