首页 > 解决方案 > GhostScript PDF to PCL 黑白无灰度

问题描述

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

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

这是 grayscaletest.pdf 之前的样子:灰度测试.pdf以及之后 grayscaletest.pcl 的样子:灰度测试.pcl

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

GhostScript 版本是 9.06。任何帮助使用 ljetplus 提高质量,或者只是将所有内容都转换为没有灰度的黑白,将不胜感激。

标签: pdfghostscriptprinter-control-language

解决方案


嗯,这是一个黑白输出,它被半色调从 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 有程序可以读取的图像格式(例如 viewpbm. ps 在 ghostpdl/lib 目录中)。

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


推荐阅读