【发布时间】:2009-08-01 02:40:42
【问题描述】:
我们的应用程序是客户端/服务器设置,其中客户端是始终在 Windows 中运行的独立 Java 应用程序,而服务器是用 C 编写的,可以在 Windows 或 Unix 机器上运行。此外,我们使用 Perl 进行各种报告。通常,报告的工作方式是我们在服务器上用 Perl 生成文本文件或 xml 文件,然后将其发送到客户端。然后客户端使用 FOP 或类似工具将 xml 转换为 pdf。在文本文件或最终 pdf 的情况下,用户通过 java 客户端选择打印机,然后复制的文件打印到选定的打印机。
我们的一份“报告”用于创建条形码。这个不同之处在于它使用 Perl 从数据库中获取/格式化一些数据,然后将其发送到创建一些原始打印数据的 C 应用程序。然后将这些数据直接发送到打印机(通过 Unix 中的简单管道或 Windows 中的自定义应用程序。
问题在于,这绝不会尊重用户在 Java 客户端中选择的打印机。此外,我们无法在所述客户端中显示预览。理想情况下,我希望能够在服务器(甚至在客户端)上将原始打印数据转换为 ps/pdf 或类似文件,然后将其从客户端发送到打印机。这将允许我显示预览以及实际打印到选定的打印机。
如果我无法生成预览,即使只是将文件中的原始数据复制到 Java 客户端然后将其发送到打印机也可能“足够好”。我一直无法找到我想要完成的任何事情,因此当然会感谢任何帮助。
编辑:RAW 数据为 PCL 格式。我设法将源代码与 PCL 语言参考指南相协调。
【问题讨论】:
-
RAW打印数据的格式是什么?
-
这是一个很好的问题,也是一个我不知道答案的问题。我有生成数据的源文件,但对它的了解还不够,甚至不知道要查找什么或如何回答问题。
-
我在 OpenPCL 查看器中打开了数据……它看起来不太对劲,但大部分都在那里。似乎我可以假设它是 PCL 或类似的......
-
显然您需要删除的步骤是输出原始打印机文件的自定义 C 应用程序。这个应用程序究竟做了什么?
-
它只是获取数据并将 PCL 数据打印到 STDOUT。我认为您是正确的...我正在研究其他一些想法,例如将此应用程序更改为以 postscript 语言打印,使用 FOP 的条形码插件,甚至仅使用条形码字体。