Ghostscript mswinpr2打印单色,除非BitsPerPixel = 24,它会创建非常大的假脱机文件

时间:2018-06-12 17:12:00

标签: ghostscript

2018年7月6日

嗨肯,谢谢你的所有信息!对不起,需要一段时间才能回复你,但根据你的建议,我们离开了,做了一些工作。我们现在在100dpi下降到大约10.4MB 我们在这种低分辨率下的问题是字体和条形码的完整性。

到目前为止,我们管理好的假脱机文件大小的唯一方法是通过命令行使用Adobe的AcroRd32.exe。这给出了大约2.5MB的惊人尺寸。分辨率似乎很好,关键的条形码和字体也很好。然而,使用这种方法进行大批量打印并不理想。

您是否知道为什么以这种方式打印会产生如此小的假脱机文件大小?我们有一些颜色问题,但分辨率似乎非常好。

是什么让AcroRd32.exe与我们迄今为止尝试的其他所有内容不同?非常感谢您的建议。

谢谢。 Lizl

我需要通过ghostscript打印图像重pdf目录。如果我不降低分辨率,则假脱机文件变得非常大。 最终,我们需要通过VPN连接打印pdf文件,这意味着文件大小需要保持在5MB或更低。我们很满意,分辨率约为300 dpi。

此命令创建1.74 MB文件:

  

C:\ Users \ admin>“c:\ Program Files \ gs \ gs9.23 \ bin \ gswin64c.exe”-dNOPAUSE   -dQUIET -dBATCH -c“mark / OutputFile(%printer%Pro C5100Sseries E-22B PS 1.1)/ UserSettings<>(mswinpr2)finddevice   putdeviceprops setdevice“-f”myCatalogue.pdf“

此命令创建一个84.7MB的文件:

  

c:\ Program Files \ gs \ gs9.23 \ bin \ gswin64c.exe“-dNOPAUSE -dQUIET   -dBATCH -c“mark / BitsPerPixel 24 / OutputFile(%printer%Pro C5100Sseries E-22B PS 1.1)/ UserSettings<>   (mswinpr2)finddevice putdeviceprops setdevice“-f”myCatalogue.pdf“

如果我没有指定/ BitsPerPixel 24,则pdf以单色打印。但是,这会将文件大小推高到84.7MB。

在线发现此解释: 某些Windows设备驱动程序错误地返回低值 这导致BitsPerPixel可以强制我们映射到单色,甚至在全彩设备上抖动,使-dBitsPerPixel = 24必须。

是否有其他人遇到过这个问题,或者有任何关于通过VPN批量打印pdf文件的方法的建议,文件大小不超过5MB?

1 个答案:

答案 0 :(得分:0)

mswinpr2的工作方式是将输入文件呈现为位图,然后将位图blit到Windows设备上下文,然后告诉设备上下文打印它。这将调用使用Windows打印机驱动程序的打印管道来创建适合打印机读取的文件。

根据打印机的不同,这可能是PCL,PostScript,XPS,GDI或打印机制造商专有的一些其他语言(例如ZPL for Zebra打印机)。

以这种方式工作的优势在于它利用Windows对特定打印机类型的大量支持。否则Ghostscript必须为每一台不同的打印机配备一个驱动程序,这很久以前就变成了一项不可能完成的任务。

缺点当然是打印的是一个巨大的位图。所以很重要。

如果你考虑一个300 dpi的A4页面,每个分量RGB的8位,那么图像将是:

宽度(英寸)*分辨率(dpi)*每个样品的位数(24)

8.27 * 300 * 3 =每条扫描线7443字节

然后有:

页面上的高度(英寸)*分辨率(dpi)扫描线 11.69 * 300 = 3507

因此,我们将扫描线尺寸乘以扫描线的数量以获得图像尺寸:

7443 * 3507 = 26,102,601字节或略低于25 MB

因此,您对5 MB图像的目标要求您压缩文件并获得至少5:1的压缩率。因此,一种解决方案是尝试压缩文件并在另一端解压缩。

现在,关于此设备的一个问题是其属性由打印机控制。 Ghostscript设备查询打印机并根据打印机的分辨率进行调整。我怀疑你的打印机实际设置为以600 dpi渲染,这就是你的假脱机文件比300 dpi分辨率大4倍的原因。

该设备也不支持降低色彩质量,而不是单色(这是我怀疑你的1.74MB文件)。因此,您可以选择单色,每个组件CMYK或24位RGB。

您可以在Ghostscript网站上的Ghostscript设备上找到该文档,以及该设备的具体信息here

关于你唯一可以做的事情(我还没试过这个)是设置MaxResolution参数。但正如我上面所示,这只会让你达到25Mb。如果您想要低于此值,则必须进一步降低分辨率。进一步下降5倍意味着将分辨率减半。

看起来你正在看大约135 dpi。