2009-08-07 96 views
4

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

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

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

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

回答

4

简化解决方案恕我直言,是将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命令和ATTACH switchinges,告诉RightFax删除一旦它被发送的文件等。

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

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


编辑:开放源代码是正确的,您可以连接文件一起,我还没有和嵌入式代码这样做很长一段时间(见例如在结束),但已经做了类似的东西与FCL(如果你有Ingetration模块,你可以做到这一点)。

FCL与PDF或Postscript嵌入数据(的RightFax对待PS和PDF): {{开始}} {{传真999999999}} {{联系道格拉斯安德森}} {{billinfo1 12346}} { {nocover}} {{beginpostscript}} %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... 

不管你发送将出现在“第一页”上,但这将被删除。另一种选择是在换页之后将该数据发送到文档的末尾,并使用<DELETELASTPAGE>选项。此数据也可以与PCL文件本身内联显示,因此您可以在作业开始时发送它,而不需要<DELETEFIRSTPAGE>命令和换页分割器。

+0

只是为了确保我理解正确:使用嵌入式代码文件,附加的PCL文件必须位于RightFax服务器可以访问的位置,对吗?如果这是不可能的,那么唯一的选择是通过HPFAX队列发送带有嵌入代码的PCL文件。 – Khandelwal 2009-08-10 13:26:51

+0

它需要可访问,它不会;但是,需要是PCL。它可以是PDF或RightFax支持输入的任何其他类型(TIF,JPG,Word等)。如果您无法将文件写入服务器,则可以通过RightFax有权访问的共享来访问它。由于'OpenSource'表示你也可以在文件顶部发送这些数据,所以我认为正确的术语是'假首页'。我们不使用嵌入代码来做这件事,而是使用Postscript,PCL和PDF做了类似的事情。我将添加到我的'答案' – 2009-08-10 18:09:46

+0

意思是说:我们不这样做嵌入代码,但已经做了类似的FCL与Postscript,PCL和PDF文档 – 2009-08-10 18:10:29

0

JPS让你打印到文件,所以你只需要打印到PCL打印机上的文件。

-1

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

2

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

+0

我并不是想表明这些命令是在底部 - 我没有试过这个。 – Khandelwal 2009-08-08 19:16:19