代码之家  ›  专栏  ›  技术社区  ›  mmvsbg

PostScript不会将柯尼卡美能达的两页装订在一起

  •  0
  • mmvsbg  · 技术社区  · 6 年前

    我试图发送一个简单的PostScript到柯尼卡美能达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
    

    它们都没有任何影响-文件得到打印,但没有装订是执行任何。

    是我使用了错误的命令还是我遗漏了什么?

    我也试着找一个简单的预制的 .ps文件 文件在互联网上有这些相同的命令,但我找不到一个。在不同的论坛和网站上有很多不同的建议,但我尝试过的都没有成功,所以任何建议都是受欢迎的。谢谢您!

    编辑: 下面是一个示例链接 我正在使用的文件: https://www9.zippyshare.com/v/QW6w7yHl/file.html

    不幸的是,我必须通过一个链接,因为代码太长,约11k行。

    编辑2: 在将PostScript保存到一个文件而不是发送到打印机之后,我可以查看生成的代码并提取以下行,如果将这些行添加到文件的顶部,这些行将起到装订的作用:

    @PJL COMMENT
    @PJL SET ORIENTATION = PORTRAIT
    @PJL SET BINDING = LEFT
    @PJL SET FINISH = LEFT1POINT
    @PJL SET EDGEMATCHING = FINISH
    @PJL ENTER LANGUAGE = POSTSCRIPT
    

    1 回复  |  直到 6 年前
        1
  •  2
  •   KenS    6 年前

    一些依赖于设备的特性(如双工)在规范中有很好的定义,其他的则没有那么好的定义,制造商可以创建他们自己的键/值对,这些完全没有定义。setpagedevice操作符的工作方式将忽略它不理解的任何内容。

    << /Staple 3 >>
    

    什么都不做。这只需创建一个键/装订和值为3的字典,然后将该操作数留在操作数堆栈上,直到作业结束。

    其他示例将字典传递给setpagedevice,因此它们可能会执行某些操作,不过Collate和BindingLocation不会影响装订!请注意,在PostScript程序结束时发送它们不会有任何用处,因为到那时程序已经完成,页面已经打印出来了。

    也有可能把它放在PostScript程序的前面也不会有任何效果,因为程序的内容可能是通过将设备重置为默认状态来启动的。如果是这种情况,则需要在适当的位置将setpagedevice调用插入到程序中。如果程序符合DSC,那么有一个定义的位置,你可以把它,如果不是那么所有的赌注是关闭的,坦率地说。但是大多数PostScript程序都是DSC兼容的。

    问题是,所需值的确切细节是特定于制造商的,因此不可能确切地告诉您应该使用什么。

    最好的方法通常是选择“打印到文件”并使用您知道的可以启用装订的设置打印文档(如有必要,请事先尝试)。一旦你有了它,你可以打开一个文本编辑器的结果文件,并通过它查看装订设置。

    不幸的是,打印机的控制面板可以执行各种操作,甚至可能无法通过PostScript控制打印机。你确定这可以通过PostScript控制吗?你试过联系制造商并询问他们的支持部门吗?

    [编辑]

    PostScript程序是Ghostscript的ps2write设备的输出,所以我怀疑您没有使用pdf2ps。 执行

    但我还是不知道你装订的正确方法是什么。如上所述,如果您可以从操作系统打印到打印机上,并将其用于执行装订,那么您可以捕获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