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

从ubuntu打印彩色激光,无需postscript转换,ubuntu,pdf,printing,cups,intel-ipp,Ubuntu,Pdf,Printing,Cups,Intel Ipp,编写需要将pdf发送到激光打印机的应用程序。PDF中有大量的大型图像。使用cups驱动程序需要8分钟。使用cups gutenprint驱动程序可以完美地工作,需要50秒,但似乎只支持灰度 所以,试着直接打到打印机上。使用 ippTool -tv -f myfile.pdf ipp://address printfile.ipp 其中该文件包含ATTR mimeMediaType of application/pdf以及一系列其他设置,如语言。这一切都交给了打印机,但我们只得到以pdf签名开始

编写需要将pdf发送到激光打印机的应用程序。PDF中有大量的大型图像。使用cups驱动程序需要8分钟。使用cups gutenprint驱动程序可以完美地工作,需要50秒,但似乎只支持灰度

所以,试着直接打到打印机上。使用

ippTool -tv -f myfile.pdf ipp://address printfile.ipp
其中该文件包含ATTR mimeMediaType of application/pdf以及一系列其他设置,如语言。这一切都交给了打印机,但我们只得到以pdf签名开始的页面,所以它只是将文档作为文本读取


你知道我怎样才能快速把这份文件送到打印机上吗?在windows下使用pcl6驱动程序-打印文档需要2分钟。打印机是理光SP C250DN。

打印机不支持直接打印PDF,这就是为什么直接将PDF文件发送到打印机无法工作的原因。在没有说明的情况下,打印机假定其发送的是PCL,并且指定了PCL,因此,如果发送文本,它只打印文本。PDF文件看起来很像文本,足以让这种情况发生

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

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

您也可以尝试使用ps2write设备生成PostScript,然后再试试。您的安装程序可能使用的是使用旧pswrite设备的足够旧的Ghostscript/CUPS版本,这会产生巨大而缓慢的PostScript,发送到打印机需要很长时间,打印也需要很长时间

在上述情况下,只需使用以下内容:

gs-sDEVICE=ps2write-o out.ps

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

您可以对PXL/PCL输出文件执行相同的操作,但不需要将PJL包装在其中


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

真棒的答案。。。事实上,我们用pdftops解决了这个问题——它给出了gs文件大小的1/10——我猜是因为它看起来像是gs在光栅化所有的字体——但真的很欣赏这个深刻的答案。是的,听起来像是你在用pswrite,你真的不想这么做(在当前版本中,因为我们杀死了这个设备,所以不能这么做)。你应该使用ps2write设备,PostScript要小得多,运行得快得多。事实上,我看过我们使用的命令,我们使用的是ps2write。下次我在办公室时,我会把整个命令行挖出来。我们现在只需使用pstopdf生成一个ps,然后使用ipptool将其直接泵送到打印机。现在一直少于3分钟,这就足够了。嗯,ps2write不应该使用位图字体(当然,除非它们是以这种方式开始的)。我也有点惊讶,你会从另一个PostScript输出中得到一个1/10大小的PostScript文件。当然,我们不得不在ps2write中禁用一些压缩,因为糟糕的PostScript实现(廉价打印机)无法处理它。如果你的产量要小得多,你可能需要注意这一点。