我有一个程序可以生成PDF作为输出。如果我使用Adobe查看器将此文件发送到打印机,则会根据需要进行打印。特别是,应用程序是打印标签,并且要求使用页面上的每个最后一个像素,即无任何边距。
我想尝试自动执行此过程。 GhostScript似乎是一个合乎逻辑的选择。我使用命令行
gs -dBATCH -dNOPAUSE -sDEVICE=psmono -sOutputFile=A4_300.xxx -sPAPERSIZE=a4 A4_Print.pdf
......或者
gs -dBATCH -dNOPAUSE -sDEVICE=ljetplus -sOutputFile=A4_300.xxx -sPAPERSIZE=a4 A4_Print.pdf
我可以通过LPR将输出文件A4_300.xxx发送到打印机并且几乎打印得很好,但是所有方面都缺少大约6-8 mm,即有一个边距被强制执行,应该在该区域打印的文本实际上被切断了。
纸张尺寸应为a4,并且这一点正常工作。但是如何安排输出填满整个页面?
输出设备是“某种HP激光打印机”;我还没有看过物理设备。我测试过的类似打印机能够处理“psmono
”(产生PostScript)和“ljetplus
”(二进制,但可打印)的输出。
请问任何建议?
答案 0 :(得分:2)
首先:您确定打印机在物理上能够边对边打印吗?它是哪种打印机型号的?
打印机本身可能会强制“四面都缺6-8毫米”。由于您看到边缘“区域实际被切断”,这意味着打印机确实收到了完整的图像,但它将图像裁剪为PostScript打印机PPD中显示为*ImageableArea
个关键字的图像( PS打印机描述文件)。
如果 您的打印机确实支持边对边打印,那么您可能需要将其作为默认设置启用...
设置此项的实际步骤取决于您的打印机型号。它应该在打印机手册中描述。
如果您运气不好,设备根本不支持无边距打印。然后购买或找到一个能满足你需求的模型; - )
更新: 我错过了您的声明“如果我使用Adobe查看器将此文件发送到打印机,则会完全按照需要打印。”因此,我得出结论,您的打印机必须确实支持无边距打印。
如果您的LPR客户端使用任何形式的PPD(如果您通过CUPS打印,例如),请查看我的修改PPD(这也适用于Windows系统)的提示:
很可能你不需要微调你的Ghostscript输出;裁剪打印输出显示它很好。
您很可能需要调整LPR客户端,以便其“驱动程序”不会破坏您要发送给打印机的内容。