Java PDF到PCL的转换

Java PDF到PCL的转换,java,pdf,printer-control-language,rightfax,Java,Pdf,Printer Control Language,Rightfax,在我的Java应用程序中,我最终需要将PDF文件转换为PCL并发送到RightFax服务器。我还需要在PCL文件中嵌入代码,RightFax将读取这些文件,以知道在哪里发送传真 做这件事的最佳方法是什么 通过在线搜索,我似乎可以使用Java的StreamPrintService将PDF文件打印到PCL。这是正确的吗?这是否也意味着我必须在操作系统上安装一台可以解释PCL的打印机 生成PCL文件后,我需要在文件中添加嵌入的代码。我是否要将代码添加到文件的末尾(用Java打开并写入)?JPS允许您打

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

做这件事的最佳方法是什么

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


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

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

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

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

简单的解决方案,IMHO,是将PDF放入RightFax服务器上的文件夹中。然后,使用嵌入代码或FCL(传真命令语言)创建一个小文本文件,其中包含向谁发送文档等的所有说明。我们一直这样做,效果很好。注意:传真命令语言仅在具有集成模块时可用。嵌入式代码和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将提示它处理并插入您指定的文档。有很多用于附加的ADDDOC命令和开关,它们告诉RightFax在文件发送后删除该文件,等等

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

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


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

数据中嵌入PDF或Postscript的FCL(RightFax处理PS和PDF): {{begin}} {{传真9999999}} {{联系道格拉斯·安德森} {{billinfo1 12346} {{nocover}} {{beginpostscript}} %PDF-1.3。。。 …你的pdf。。。 {{endpostscript}} {{end}

PCL变体如下所示:

{{begin}}
{{fax 999999999}}
{{contact Douglas Anderson}}
{{billinfo1 12346}}
{{nocover}}
{{beginpcl}}
...your pcl data...
{{endpcl}}
{{end}}
错误的第一页,带有嵌入代码(根据我的笔记,我们很久以前做过的事情):


*PCL formfeed字符*
…您的pcl数据。。。

您发送的内容将显示在“首页”上,但此内容将被删除。另一个选项是在文档末尾的Formfeed a之后发送此数据,并使用
选项。此数据也可以与PCL文件本身内联显示,因此,您可以在作业开始时发送它,而无需使用
命令和formfeed拆分器。

我不是想指出命令位于底部-我没有尝试过此操作。只是为了确保我理解正确:使用嵌入的代码文件,附加的PCL文件必须位于RightFax服务器可以访问的位置,对吗?如果这是不可能的,那么唯一的选择就是通过HPFAX队列发送带有嵌入代码的PCL文件;但是,必须是PCL。它可以是PDF或RightFax支持输入的任何其他类型(TIF、JPG、Word等)。如果无法将文件写入服务器,则可以通过RightFax有权访问的共享访问该文件。由于“OpenSource”表示您也可以在文件顶部发送此数据,因此我认为正确的术语是“FalseFirstPage”。我们不使用嵌入式代码,但使用Postscript、PCL和PDF做了类似的事情。我将把这个添加到我的“答案”中,意思是:我们不使用嵌入式代码,而是使用Postscript、PCL和PDF做了类似的FCLdocuments@CCondron-如果已安装集成模块,则只需将文件复制到“program files\rightfax\production\inbox”中即可。否则,您可以将其复制到hpfax共享“copy file.txt\\server\hpfax”。有一个没有集成的系统文件夹,但我不记得现在是哪个文件夹。
<TOFAXNUM:999999999>
<TONAME:Douglas Anderson>
<BILLINFO1:12345>
<NOCOVER>
<WHO:DOUG>
<DELETEFIRSTPAGE>
*PCL formfeed character*
...your pcl data...