我有一个将PDF转换为PCL以进行自动打印的过程,但是质量不好。这是我必须证明其质量较差的测试代码:
gs -dBATCH -dNOPAUSE -q -sDEVICE=ljetplus -sOutputFile=grayscaletest.pcl -f grayscaletest.pdf
这是grayscaletest.pdf之前的样子:,而grayscaletest.pcl则是下面的样子:
我意识到这样做是因为设备ljetplus,但这是我发现的唯一可以满足我需要的设备。因此,我想将所有的灰度转换为黑色。我已经尝试过找到here (GitHub)和here (superuser)的解决方案,但是它什么也没做。我什至无法获得从PDF到PDF的解决方案,它保持不变。
GhostScript版本为9.06。使用ljetplus改善质量或仅将所有内容转换为没有灰度的黑白都可以得到帮助。
答案 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输出文件。