【问题标题】:Ghostscript and page marginGhostscript 和页边距
【发布时间】:2016-01-27 23:33:49
【问题描述】:
我有一台兼容 HP Deskjet 5150 PCL 的打印机,我需要打印一个 PostScript 文件。如果我用gv 查看文件,它的边距很好。当我尝试使用以下方式打印时:
gs -dSAFER -dNOPAUSE -dBATCH -q -sDEVICE=hpdjportable -sOutputFile=/dev/usb/lp0 file.ps
左边距向右移动了大约 6 毫米。结果,页面最右边的 6 毫米被剪掉了。我知道这个缺陷几乎不引人注意,但我不喜欢它。印刷品在其他方面非常公平。
非常感谢任何帮助。
【问题讨论】:
标签:
printing
ghostscript
postscript
printer-control-language
【解决方案1】:
听起来您的打印机有一个硬件边距,这是它根本无法打印的区域,通常是由于纸张处理硬件造成的。
这可能意味着纸张的可打印区域小于介质的尺寸,因此如果您尝试打印到边缘,则位会“脱落”。屏幕显示显然不会遇到这个问题....
通常使用 PostScript 的打印机将使用包含可打印区域的 PPD,或者它们会稍微重新调整输入以适应。
现在,我怀疑 Ghostscript 的 PCL 输出只不过是一个位图,其中包含足够的 PCL 以使其打印,这意味着它将假设它可以直接打印到边缘。因此,您的解决方案将是稍微重新调整输出,并可能在媒体上稍微移动一下。
您可以使用几个不同的命令行选项中的任何一个来选择不同的媒体大小,例如 DEVICEWIDTHPOINTS 和 DEVICEHEIGHTPOINTS 或 -g,您还需要选择 -dFIXEDMEDIA(因此 PostScript 无法更改媒体大小)和-dFitPage 使GS缩放内容以适应新大小。最后,您需要编写一些 PostScript 来稍微移动一下输出:
-c "<</PageOffset [-18 0]>> setpagedevice" -f
你应该把它作为最后一个选项,就在输入文件名之前。您几乎肯定需要干预其中的数字才能使其正确显示。