注入staple命令时postscript编码之间的不一致

时间:2013-08-07 08:12:24

标签: .net pdf printing postscript

我正在使用命令行复制过程将文件编码为PostScript并将其直接发送到打印机(Cannon Image Runner Adv 8105 PRO)

我已经获得了打印机的PPD文件(CNADV8105E1.PPD),我正在将PS命令注入我的PS文件中,以便按照PPD <</Staple 3 /StapleDetails <</Type 21 /Position (1PLU)>> >> systemdict /setpagedevice get exec中的定义进行装订我正在注入主要命令%%BEGINSETUP

当我的PS文件由acrobat reader(使用阅读器打印到redmon / ghostscript打印机)编码时,钉书钉命令可以成功运行,但是此选项不适合所需的整体结果,因为打印的每个文档都会打开acrobat阅读器窗口(如果打印了多个文件)

为了避免必须为每个文档打开acrobat reader我通过.net库传递pdf(xpdf - pdftops)这将以不同的postscript格式对输出进行编码,打印机正确解释并打印成功然后注入时PPD定义为这种编码的装订命令,装订不起作用(事实上,在转移到输出托盘之前,页面不再保存在托管中,它们实际上只是存放在输出托盘中被绘制)

我在这个编码中尝试过PPD中的其他命令并且它们可以工作(例如信头)

  • 是否有xpdf输出postscript的语法指南,所以我可以重写staple命令?
  • 我可以使用另一个主要命令吗?
  • 我的打印机如何成功地解释了2个明显不同的postscript语法?

非常感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:2)

你的帖子有些混乱。您说您正在通过插入(设备特定的)装订指令来修改PostScript程序。然后,您说您正在使用Acrobat Reader打印文件。情况并非如此,因为Acrobat不处理PostScript ....你后来提到将PDF转换为PostScript,所以这里显然缺少一步。

当您的打印机是PostScript打印机时,我完全不确定为什么要通过RedMon从Acrobat Reader打印到Ghostscript。为什么不直接打印?

如果要创建PDF文件,则Staple命令将丢失,无法以PDF格式保存。因此无论“工作”是什么,都与原始修改无关,发送到打印机的PostScript与原始PostScript程序无关。

pdftops的输出是一个PostScript程序(是的,PostScript是一种编程语言),因此将随机内容插入其中可能不起作用。它不是一个不同的'格式',它完全是一个不同的程序。您的不同“PostScript格式”只是使用相同语言的不同程序。

事实上,修改PostScript程序非常困难,除非您处于某种封闭的工作流程中,否则可能无法可靠地执行。请注意,PostScript程序中以'%'开头的任何行都是注释,除非您的文件符合DSC,否则可能不存在。

所以:

1)你如何创建('编码')PostScript程序?为什么不能在创建PostScript时根据需要简单地插入Staple命令?如果要通过打印创建PostScript,请将PPD(或WPD)用于要使用的打印机。

2)如果您确实修改了PostScript程序,通过添加Staple命令,如果将其发送到打印机会发生什么?

3)转换为PDF的步骤是什么,它适用于所描述的工作流程?