从GhostScript PDF到PCL黑色和白色(无灰度)

时间:2019-05-28 18:12:09

标签: pdf ghostscript printer-control-language

我有一个将PDF转换为PCL以进行自动打印的过程,但是质量不好。这是我必须证明其质量较差的测试代码:

gs -dBATCH -dNOPAUSE -q -sDEVICE=ljetplus -sOutputFile=grayscaletest.pcl -f grayscaletest.pdf

这是grayscaletest.pdf之前的样子:grayscaletest.pdf,而grayscaletest.pcl则是下面的样子:grayscaletest.pcl

我意识到这样做是因为设备ljetplus,但这是我发现的唯一可以满足我需要的设备。因此,我想将所有的灰度转换为黑色。我已经尝试过找到here (GitHub)here (superuser)的解决方案,但是它什么也没做。我什至无法获得从PDF到PDF的解决方案,它保持不变。

GhostScript版本为9.06。使用ljetplus改善质量或仅将所有内容转换为没有灰度的黑白都可以得到帮助。

1 个答案:

答案 0 :(得分:1)

这是黑白输出,经过半色调处理后可以从8位输入产生1位输出。无论您做什么,如果您的设备仅支持1位输出,那么您总是将必须进行某种类型的筛选以表示灰度或彩色。

对于为什么ljetplus是唯一可以使用的设备,您没有任何线索。不知道为什么很难提供任何具体建议。

但是......

第一件事是更新您的Ghostscript版本。当前版本为9.27,您使用的版本已超过6年。

屏幕看起来粗糙,ljetplus的默认分辨率为300 dpi,这对您的打印机是否正确?如果不是,您将需要设置更高的分辨率,它将为您提供更好的屏幕。如今,大多数PCL设备的分辨率为600 dpi或更高。

假设您的PDF文件不包含半色调,接下来要做的就是尝试使用Ghostscript中可用的筛选选项。您可以尝试此处所述的开关:

https://www.ghostscript.com/doc/9.27/Use.htm#Rendering_parameters

您也可以使用PostScript筛选,但这很难实现,除非您已经了解PostScript。在Ghostscript中也有随机屏幕,但不知道您对PostScript的舒适程度,我不想走那条路。

您当然可以使用Ghostscript渲染为高分辨率位图,也可以通过选择图像处理将其抖动为单色,然后将其输出回PDF或PostScript,或者Ghostscript可以读取程序的图像格式(例如ghostpdl / lib目录中的viewpbm.ps。

ImageMagick可能可以为您完成上述所有步骤,然后,有了单色输入文件后,您只需通过Ghostscript运行它即可获得PCL输出文件。