postscript 3 中是不是允许在同一页面上使用多个半色调网屏?

Posted

技术标签:

【中文标题】postscript 3 中是不是允许在同一页面上使用多个半色调网屏?【英文标题】:Is using multiple halftone screens on the same page allowed in postscript 3?postscript 3 中是否允许在同一页面上使用多个半色调网屏? 【发布时间】:2020-09-10 10:36:29 【问题描述】:

我正在处理一个在同一页面上多次使用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 时,我得到这些通道图像,其中包含伪影并且仍然具有相同的半色调:

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

那么我正在处理 ghostscript 中的错误实现? 这样看来,您可以在 bugs.ghostscript.com 提出错误报告 bugs.ghostscript.com/show_bug.cgi?id=702893

以上是关于postscript 3 中是不是允许在同一页面上使用多个半色调网屏?的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs 同一页面上的两个或多个网格

PostScript/PCL - 获取文档页面信息:页面大小、黑白/颜色

如何使 ghostscript 将 postscript 文件中的单个特定页面输出为 png?

使用 Ghostscript 在一个 postscript 批次中打印单独的 PDF 文件

Lotus Notes Xpage - view.postScript("window.open()") 在替换包含的页面名称后不会打开新窗口(仅在特定文档中)

PostScript语言教程(介绍)