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

将PCL转义序列插入从多个PDF文件生成的PCL中

  •  1
  • DevByDefault  · 技术社区  · 15 年前

    哪些工具/方法可用于从pdfs构建PCL流。

    我们有一堆生成的PDF文件,它们被捆绑成一个大的PDF文件。 我需要生成一个打印作业来打印这个,并且能够在每页上插入PCL转义序列(控制进纸和出纸槽堆叠)。到目前为止,我们使用vb.net打印类,使用第三方工具将PDF转换为光栅化图像进行打印。这不允许我们将PCL序列插入打印作业。

    所以,基本上,我们需要处理一组pdf,将它们附加到pcl中,并在进行过程中插入pcl命令。有没有办法做到这一点?我们的应用程序是用vb.net编写的。

    任何建议都非常感谢。

    2 回复  |  直到 13 年前
        1
  •  0
  •   Douglas Anderson    15 年前

    PCL和PDF是完全不同的语言,不能将一种语言插入另一种语言。如果我有所有的细节,我可能会推荐一些不同的东西;但是,根据您所描述的,我建议使用 Ghostscript (使用ljet4或其他PCL输出“设备”,它包括),然后您可以附加/预先发送任何PCL命令数据,您需要控制托盘等。请记住,您可能无法简单地在顶部插入托盘选择,您需要移动到PCL流中的适当位置,并执行此操作,例如,在E之后。

    与此相关的一个主要问题是PCL 鬼脚本 创建基本上是每页一个大的图形,因此它根本就不高效,也不提供在PCL中搜索文本等的功能。

    您尚未提供的细节可能有助于推荐更具体的内容包括:

    • 在XYZ设备上打印PDF文件,到特定的纸盘并输出,最终目标是什么?
    • 是否需要将此“突发”为多个文档?
    • 纸盘选择是否在整个文档中发生更改?
    • 文件是混合尺寸的还是全尺寸的?
    • 设备还支持哪些“语言”?例如ps/pcl/pcl-xl/pdf/tiff/html/jpg…
    • 您想使用PCL是因为您必须使用还是因为您对它感到满意?

    您可以使用的其他选项包括:

    • 将PDF转换为PCL或PostScript,并在作业开始时插入PJL命令以适合该打印机。
    • 在PDF文档的开头插入PJL(这假设打印机可以本地打印PDF)并将其发送到设备。

    编辑:根据与InnocentDev的讨论添加更多细节

    抱歉,最近更新的回复,看起来您已经在最后解决了。

    如果最终的结果是获取一个PDF文件并转换成打印机在已知位置插入纸盘选择命令时能够理解的内容,那么我认为有两种解决方案。您可以将其转换为PCL或PostScript。由于PCL使用FF(FormFeed)控制代码来分隔每页,并且FF字符可能在字体声明和/或图形图像期间出现在整个页面上,PostScript可能更容易实现。

    如果您确实通过将页从单独的页中分离出来来管理FF上的中断文档,或者做一些额外的工作来确定FF实际上是一个分页,而不是字符的其他实例之一,或者甚至找到可以中断的其他元素( 鬼脚本 可能在每个页面的开头都有一些其他一致的代码,我不是100%确定)。另一种方法是使用 鬼脚本 甚至 pdftk ,将每个页面转换为PCL,插入命令并将页面连接在一起;但是,根据我之前关于从PDF转换为PCL的注释,您可能最终得到一个非常大的输出文件。这不应影响设备的打印性能,但可能会减慢数据传输等。

    如果您选择PCL路线,转换后只需在每页开始处向文档中的每一页添加相应的PCL命令即可选择纸盘。

    <esc>&lxH where x is the tray number.  
    

    这有一些标准;但是,超过3个托盘的设备通常不遵循这些标准,并且随着时间的推移,当HP决定将多用途托盘从多用途进料器重新映射到托盘1时,它们会发生一些变化。检查设备文档或安装PCL打印驱动程序并将其打印到要输出到的纸盘中,您可以看到它们使用的编号。

    如果您使用PostScript,也可以这样做,但是断开页面可能会更容易,因为您可以拆分doucment(或至少查找)命令,例如:

    %%Page: x x
    %%BeginPageSetup
    

    这些总是出现在PostScript输出中 鬼脚本 . 找到它们后,可以在页面设置过程中插入PostScript MediaSource命令并完成相同的操作。您甚至可以使用PostScript命令进行媒体类型或媒体颜色。有一些通用命令可用于此目的,但您可能需要为要输出到的设备使用特定的命令。您可以随时查看设备文档、它们的PPD文件,或者我经常做的是从它们的驱动程序打印到文件中,并查看它们如何实现编码。

        2
  •  0
  •   Jérôme Verstrynge Mark    13 年前

    PCLTOOL SDK-选项v使用 PCLXForm.exe 有习俗 .TPT 脚本是唯一可以流式编辑从Windows打印机驱动程序生成的复杂PCL的产品。

    演示在 www.pagetech.com . 但是,由于需要PCL和SDK流编辑功能的专家级知识。pagetech可能需要根据您的需求编写自定义脚本。如果PCL打印流发生更改,您可以编辑ASCII文本脚本。

    血压