从 ubuntu 无 postscript 转换打印彩色激光

Printing color laser without postscript conversion from ubuntu

正在编写一个需要将 pdf 发送到激光打印机的应用程序。 PDF 中有大量大图像。使用 cups PS 驱动程序需要 8 分钟。使用 cups gutenprint 驱动程序效果很好,需要 50 秒——但似乎只支持灰度。

所以,尝试直接打孔到打印机。使用

ippTool -tv -f myfile.pdf ipp://address printfile.ipp

其中该文件包含 application/pdf 的 ATTR mimeMediaType - 以及一些其他设置,例如语言。这一切都很好地进入打印机,但我们只是得到以 pdf 签名开头的页面 - 所以它只是将文档作为文本读取。

关于如何快速将此文档打印到打印机的任何想法?在 windows 下使用 pcl6 驱动程序 - 文档需要 2 分钟才能打印出来。打印机是 Ricoh SP C250DN。

打印机不支持直接 PDF 打印,这就是为什么将 PDF 文件直接发送到它不起作用的原因。在没有指令的情况下,打印机假设它发送的是 PCL 并且指定了 PCL ,这样如果你发送文本,它就会打印出来。 PDF 文件看起来很像文本。

因此您需要创建 PDF 文件的 PostScript 或 PCL 表示(因为这是您的打印机支持的)。我的猜测是 CUPS 正在将它转换为 PostScript 以获得最佳质量输出,使用 Ghostscript 来完成这项工作。这将意味着所有图像数据都被解压缩,然后重新压缩到 PostScript 中,这可能是时间流逝的地方。

您可以尝试使用生成 PXL 输出的 Ghostscript pxlcolor 设备,或者您可以尝试使用多种 PCL6 设备中的一种来生成 PCL 输出,看看它是否更快,是否你的打印机喜欢它。

您也可以尝试使用 ps2write 设备生成 PostScript 并尝试一下。有可能您的设置使用的 Ghostscript/CUPS 版本足够旧,以至于它使用旧的 pswrite 设备,它会产生巨大而缓慢的 PostScript,需要很长时间才能发送到打印机并打印很长时间。

在上述情况下,只需使用类似的东西:

gs -sDEVICE=ps2write -o out.ps

然后使用 ipptool 将生成的 out.ps 文件发送到打印机。注意,您可能需要在文件前添加一些 PJL 以将语言切换为 PostScript,并使用正确的终止符代码对其进行后缀。

您可以对 PXL/PCL 输出文件执行相同的操作,但您不需要将 PJL 包裹在那里。

请注意,如果您正在编写应用程序,则需要小心使用 Ghostscript,因为它受 AGPL 保护。但是,如果您能找到一种方法使该工作可接受,您应该能够配置 CUPS 来做同样的事情,而不是它当前正在做的任何事情。