【问题标题】:Need to either convert RAW print data to ps/pdf or print it from Java需要将 RAW 打印数据转换为 ps/pdf 或从 Java 打印
【发布时间】: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 的条形码插件,甚至仅使用条形码字体。

标签: java perl printing


【解决方案1】:

你看过iText吗?

【讨论】:

  • 我没有,尽管由于当前安装基础的范围,我在这里引入任何新的第三方库并不可行。
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • @Jon:似乎是合法的,因为它是一个指向可以帮助解决 OP 问题的工具的指针,即使不是一个实际完整的答案。
  • @deli stackoverflow 的格式不是链接农场。此处的答案应解释他们所引用的内容。只是一个链接不符合这种期望。它是一个有用的链接,只需要解释它是一个更好的答案。
【解决方案2】:

您将需要找到某种方法来将 RAW 格式(很可能是将 PCL 或 HPGL 等打印机语言)解释为您可以使用的格式。这可能最好在服务器端完成。

可以在http://openpcl.sourceforge.net/ 找到基于 Java 的 PCL 解释器 - 我没有这方面的经验。

【讨论】:

    【解决方案3】:

    我想出了一种直接使用 XSL-FO 生成条形码的方法。这是基于我们的架构的“正确”答案,尝试做任何其他事情都只是一个肮脏的黑客攻击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多