【问题标题】:PDF to PCL conversionPDF 到 PCL 的转换
【发布时间】:2010-11-17 17:36:01
【问题描述】:

在我的 Java 应用程序中,我有最终需要转换为 PCL 并发送到 RightFax 服务器的 PDF 文件。我还需要在 PCL 文件中嵌入代码,RightFax 将读取这些代码以了解将传真发送到何处。

这样做的最佳方法是什么?

在线搜索,似乎我可以使用 Java 的 StreamPrintService 将 PDF 文件打印到 PCL。它是否正确?这是否也意味着我必须在我的操作系统上安装可以解释 PCL 的打印机?

PCL 文件生成后,我需要在文件中添加嵌入代码。我是否将代码添加到文件末尾(通过在 Java 中打开并写入文件)?

【问题讨论】:

    标签: java pdf printer-control-language rightfax


    【解决方案1】:

    恕我直言,简单的解决方案是将 PDF 放入 RightFax 服务器上的文件夹中。然后使用嵌入式代码或 FCL(传真命令语言)创建一个小文本文件,其中包含有关将文档发送给谁等的所有说明。我们一直这样做,而且效果很好。注意:传真命令语言仅在您拥有集成模块时可用。 Embedded Codes 和 FCL 都有一个附加文件的命令。一旦 RightFax 收到此文本文件,它将处理命令并附加 PDF 和传真和/或通过电子邮件发送文档。以下是两个示例(一个嵌入式和一个 FCL)。

    嵌入式代码文件:

    <TOFAXNUM:999999999>
    <TONAME:Douglas Anderson>
    <BILLINFO1:12345>
    <NOCOVER>
    <WHO:DOUG>
    <ADDDOC2: C:\pdfFiles\12345.pcl>
    

    整箱代码文件:

    {{begin}}
    {{fax 999999999}}
    {{contact Douglas Anderson}}
    {{billinfo1 12346}}
    {{nocover}}
    {{attach C:\pdfFiles\12345.pcl delete}}
    {{imagetype pdf}}
    {{end}}
    

    将这个简单的文本文件发送到 RightFax 将提示它处理并插入您指定的文档。 ATTACH 有多种 ADDDOC 命令和开关,告诉 RightFax 在文件发送后删除文件等。

    嵌入式代码文件可以通过 HPFAX 队列发送,FCL 可以通过生产收件箱 (c:\program files\rightfax\production\inbox) 发送。

    这提供了很大的控制权并允许更轻松地进行故障排除,因为您仍然有一个可以查看的 PDF(由于您没有在开头粘贴文本),并且您可以轻松地输出嵌入式代码或 FCL 文件到备用文件夹,以便使用记事本等简单工具查看甚至修改。


    编辑:开源是正确的,您可以将文件连接在一起,我很长时间没有使用嵌入式代码做到这一点(参见最后的示例),但使用 FCL 做了类似的事情(如果你有 Ingetration 模块,你可以这样做)。

    数据中嵌入 PDF 或 Postscript 的 FCL(RightFax 处理 PS 和 PDF): {{开始}} {{传真 999999999}} {{联系道格拉斯·安德森}} {{billinfo1 12346}} {{无掩饰}} {{开始后记}} %PDF-1.3... ...您的 PDF 文件... {{endpostscript}} {{结束}}

    PCL 变体如下所示:

    {{begin}}
    {{fax 999999999}}
    {{contact Douglas Anderson}}
    {{billinfo1 12346}}
    {{nocover}}
    {{beginpcl}}
    ...your pcl data...
    {{endpcl}}
    {{end}}
    

    嵌入代码的首页错误(根据我很久以前所做的笔记):

    <TOFAXNUM:999999999>
    <TONAME:Douglas Anderson>
    <BILLINFO1:12345>
    <NOCOVER>
    <WHO:DOUG>
    <DELETEFIRSTPAGE>
    *PCL formfeed character*
    ...your pcl data...
    

    您发送的任何内容都将显示在“第一页”上,但这将被删除。另一个选项是在 Formfeed 之后发送此数据并使用 &lt;DELETELASTPAGE&gt; 选项。此数据也可以与 PCL 文件本身内联显示,因此您可以在作业开始时发送它而无需 &lt;DELETEFIRSTPAGE&gt; 命令和换页器拆分器。

    【讨论】:

    • 只是为了确保我理解正确:使用嵌入式代码文件,附加的 PCL 文件必须位于 RightFax 服务器可访问的位置,对吗?如果这不可能,那么唯一的选择是通过 HPFAX 队列发送带有嵌入代码的 PCL 文件。
    • 它需要是可访问的,它不需要;但是,需要是PCL。它可以是 PDF 或 RightFax 支持输入的任何其他类型(TIF、JPG、Word 等)。如果您无法将文件写入服务器,您可以通过 RightFax 有权访问的共享来访问它。由于“开源”表明您也可以在文件顶部发送此数据,我相信正确的术语是“假首页”。我们不使用嵌入式代码执行此操作,但使用 Postscript、PCL 和 PDF 执行了类似的操作。我会将其添加到我的“答案”中
    • 意思是说:我们不使用嵌入式代码这样做,但使用 Postscript、PCL 和 PDF 文档做了类似的 FCL
    • @CCondron - 如果您安装了集成模块,则只需将文件复制到“program files\rightfax\production\inbox”。否则,您可以将其复制到 hpfax 共享“copy file.txt \\server\hpfax”。没有集成的系统有一个文件夹,但我不记得它现在是哪个。
    【解决方案2】:

    我们有一个非常相似的过程。我们所做的是我们有一个 pcl 文件和一个控制文件(一个带有 rightfax 指令的文本文件)。我们使用 java NIO 连接这两个文件并将其发送到 rightfax 打印队列。我们基本上创建一个新文件,并使用 stream.getChannel() 获取的通道中的 transferFrom() 方法将上述两个写入新文件。我们把控制指令放在顶部而不是你提到的底部?可能你说错了——我认为 Rightfax 需要它在顶部。我不得不承认我没有尝试在底部发送它。也许它会起作用只是不知道。

    【讨论】:

    • 我并不是要指出命令在底部 - 我没有尝试过。
    【解决方案3】:

    JPS 允许您打印到文件,因此您只需在 PCL 打印机上打印到文件。

    【讨论】:

      【解决方案4】:

      打印到文件似乎是正确的方法。

      【讨论】:

        猜你喜欢
        • 2012-09-10
        • 2010-10-14
        • 1970-01-01
        • 2018-10-28
        • 2011-07-03
        • 2021-12-05
        • 2015-05-20
        • 1970-01-01
        • 2011-07-09
        相关资源
        最近更新 更多