4

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

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

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

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

4

4 回答 4

5

简单的解决方案,恕我直言,是将 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 在文件发送后删除文件等。

Embedded Code File 可以通过 HPFAX 队列发送,FCL 可以通过 Production Inbox (c:\program files\rightfax\production\inbox) 发送。

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


编辑:开源是正确的,你可以将文件连接在一起,我很久没有用嵌入式代码做过这个了(见最后的例子)但是用 FCL 做了类似的事情(如果你有 Ingetration 模块你可以这样做) .

数据中嵌入 PDF 或 Postscript 的 FCL(RightFax 处理 PS 和 PDF):{{begin}} {{fax 999999999}} {{contact Douglas Anderson}} {{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}}

带有嵌入式代码的虚假首页(根据我很久以前所做的笔记):

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

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

于 2009-08-10T12:32:54.267 回答
2

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

于 2009-08-07T18:29:29.487 回答
0

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

于 2009-08-07T15:22:40.860 回答
-1

print-to-file 似乎是正确的方法。

于 2009-08-07T15:33:46.347 回答