pdfwrite 不会创建单色输出,所以不,输出不会是半色调。 pdfwrite 设备的重点是保持输出的质量尽可能接近输入。
没有办法从 pdfwrite 获取单色输出,除非输入中有单色。
如果您改用单色输出设备(例如 tiffg3 或 tiffg4),您应该会看到不同之处,除非输入文件(您尚未提供)也设置了屏幕,在这种情况下遇到的最后一个将生效.也就是说,如果 PostScript 输入文件指定了一个半色调网屏,那就会被使用。
[添加]
您所要求的就是我通常所说的难题,可能比您预期的要困难得多。
最好将 PostScript 直接发送到打印机,因为它支持 PostScript。
问题 1;您的 PostScript 文件可能已经包含一个半色调,它会覆盖您要使用的半色调。您通常可以通过重新定义 sethalftone 和 setscreen 运算符来防止这种情况发生:
/sethalftone {pop} 绑定 def
/setscreen {pop pop pop} 绑定定义
显然,在你定义了你自己的半色调之后你会这样做。或者您可以编辑 PostScript 文件并删除半色调定义,通常不难找到。
问题 2 是打印机制造商有时会“调整”解释器以始终使用他们喜欢的半色调并防止您在 PostScript 中覆盖它。找出是否发生这种情况的唯一方法是尝试快速测试;使用默认屏幕打印一个简单的图像,然后设置一个非常粗糙的屏幕,比如 10 lpi 并打印相同的图像。如果没有区别,那么您知道这不是一个可行的选择。如果有,那么你可以设置你想要的屏幕。
现在,如果打印机不允许您更改半色调,那么唯一的解决方案是使用 Ghostscript 将 PostScript 渲染为图像(这将允许您更改半色调),然后将生成的图像发送到打印机。您需要使用 1bpp 设备,tiffg3 或 tiffg4 之类的设备应该可以正常工作。
这里的问题是您需要确保图像适合打印机的介质,因为如果不适合,那么打印机可能会稍微缩小图像以使其适合,从而挤压半色调单元格。
更微妙的是,打印机中介质的可打印区域可能与介质的尺寸不同。纸张处理可能意味着纸张的某些区域无法打印,并且进纸的可变性可能意味着打印机无论如何都会拒绝打印到边缘。因为如果确实如此,并且在纸张处理中存在 1 毫米的偏差,那么 1 毫米的边缘会“脱落”,并且在另一边缘会有 1 毫米的白色间隙......