我正在尝试将简单的PostScript发送到具有装订器的Konica Minolta C364打印机。我可以打印几页并将它们装订起来,方法是直接打印一个PDF文件,然后从打印用户界面中选择适当的设置。但是,我无法通过PostScript命令执行相同的操作。
我尝试了许多不同的命令,从简单的命令开始,将它们添加到.ps
文件的开头和结尾:
<< /Staple 3 >>
然后尝试一些其他选项:
<< /Staple 3 /StapleDetails << /Type 17 /Position 17 >> >> setpagedevice
or
<</Staple 3 /StapleDetails <</Type 1 /StapleLocation(SinglePortrait)>> >> setpagedevice
然后是更多建议,例如:
<</BindingLocation (LongEdge) >> setpagedevice
<</Collate true /Rotate false /Jog 0>> setpagedevice
<</Staple 2 /StapleDetails <</Type 5 /Position (1PLU)>> >> setpagedevice
它们都不起作用-打印文档,但不执行装订操作。
我使用的命令是否错误?还是我遗漏了其他内容?
我还尝试在Internet上寻找一个简单的预制.ps
文件,该文件具有相同的命令,但找不到。在不同的论坛和网站上有许多不同的建议,但到目前为止,我尝试过的任何尝试都没有成功,因此欢迎任何建议。谢谢!
编辑:
这是我正在使用的示例.ps
文件的链接:
https://www9.zippyshare.com/v/QW6w7yHl/file.html
不幸的是,我必须通过链接来完成此操作,因为代码太长了,大约11000行。
EDIT2: 将PostScript保存到文件中而不是将其发送到打印机后,我可以浏览生成的代码并提取以下几行,如果添加到文件顶部,则可以完成装订的技巧:
@PJL COMMENT
@PJL SET ORIENTATION = PORTRAIT
@PJL SET BINDING = LEFT
@PJL SET FINISH = LEFT1POINT
@PJL SET EDGEMATCHING = FINISH
@PJL ENTER LANGUAGE = POSTSCRIPT
希望他们会被添加到下面的答案中!
答案 0 :(得分:2)
希望通过调用setpagedevice以2级或3级语言控制与设备有关的动作(例如装订以及双面,翻滚,整理等)。
某些与设备有关的功能(例如双工)在规范中定义得很好,其他功能定义得不太好,制造商可以创建自己的键/值对,而这是完全未定义的。 setpagedevice运算符的工作方式将忽略它不了解的所有内容。
所以我期望:
<< /Staple 3 >>
什么都不做。只需创建一个键/ Staple和值为3的字典,然后简单地将该操作数保留在操作数堆栈上,它将一直保留到作业结束。
您的其他示例将字典传递给setpagedevice,因此它们可能会执行某些操作,尽管Collate和BindingLocation不会影响装订!请注意,在PostScript程序末尾发送它们将无济于事,因为到那时该程序已完成,页面将被打印。
将其放在PostScript程序的最前面也可能没有任何作用,因为程序的内容有可能通过将设备重置为其默认状态而开始。如果是这种情况,则需要在适当的位置将setpagedevice调用插入程序中。如果该程序符合DSC,则可以在一个定义的位置放置它,如果不这样,则坦率地说,所有赌注都没有。但是大多数PostScript程序都符合DSC。
问题在于所需值的确切详细信息是制造商所特有的,因此无法告诉您应该使用的确切内容。
找出答案的最佳方法通常是选择“打印到文件”并使用您知道可以启用装订的设置来打印文档(如果需要,请事先进行尝试)。有了后,您可以使用文本编辑器打开生成的文件,并在其中查找装订设置。
不幸的是,打印机的控制面板可以执行各种操作,甚至可能无法通过PostScript控制打印机。您确定可以通过PostScript进行控制吗?您是否尝试过联系制造商并询问他们的支持部门?
如果您可以捕获上述程序(理想情况是打印内容尽可能简单以减小大小和复杂度),请将其发布到某个位置的公共URL,然后将URL放在此处。我看看。如果您也可以发布要修改的PostScript程序,那么我可以告诉您将代码插入该程序的位置。
如果您无法捕获PostScript程序,那么我想不了什么办法,除了要求打印机制造商找到一种方法来做到这一点。
[编辑]
PostScript程序是Ghostscript的ps2write设备的输出,因此我怀疑您没有使用pdf2ps。 exe ,而是使用了pdf2ps.bat,这是一个调用Ghostscript的命令外壳脚本。您还使用了较旧版本的Ghostscript(9.20)。出于安全原因,您应该升级到9.25版(在接下来的几天内到期)。
但是我仍然不知道正确的装订方式是什么。如前所述,如果您可以从操作系统打印到打印机上并进行装订,则可以捕获PostScript并从中提取相关部分。
但是,如果没有这个,我什么都没告诉你。
根据要求,以下是原始问题的PJL(不是PostScript)代码,该代码显然可用于添加装订):
@PJL COMMENT
@PJL SET ORIENTATION = PORTRAIT
@PJL SET BINDING = LEFT
@PJL SET FINISH = LEFT1POINT
@PJL SET EDGEMATCHING = FINISH
@PJL ENTER LANGUAGE = POSTSCRIPT