如何使用Java向打印机打印机提供格式和打印数据

时间:2012-11-03 17:37:47

标签: java printing

我开始做这样的事了,所以我需要一些帮助才能开始。

我想打印一些数据并给它一种格式来打印它作为企业票据,那么最好的方法是什么?

  • 使用java api并自己创建服务? http://docs.oracle.com/javase/tutorial/2d/printing/index.html

  • 或者它是否存在任何免费的图书馆?

  • 也许在打印之前用数据创建PDF会更好? 我一直在搞乱PDFbox API,但我不太喜欢它。

  • 我不知道将使用什么打印机,票据打印机是使用标准尺寸还是存在不同的票据尺寸?

  • 我还需要在打印之前显示预览(我正在使用Swing)。

  • 无需存储格式化数据。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您决定生成pdf文件然后打印,我建议使用Apache FOP。我总是使用这个库来生成PDF。这个库并不容易,但提供了很多选择。

第二个选项 - 您可以生成HTML页面然后打印它。

答案 1 :(得分:1)

从一个真实的例子:我们正在运行一个项目,打印发货标签以发送包裹服务。标签包含条形码和其他文字信息以及徽标。

通常票务打印机理解一种特殊的打印机控制语言,即如果它是Zebra打印机,它理解EPL或ZPL代码。为了生成票证,我们只需通过与打印机的简单套接字连接发送整个控制代码。控制代码本身是通过模板引擎创建的(在我们的例子中是Velocity)。

当然,根据不同的要求,有不同的打印机 - 可能取决于实际应该打印的内容。因此,根据打印机的不同,您可能需要创建一组不同的模板来生成标签:

https://en.wikipedia.org/wiki/Printer_control_language

顺便说一下: 通常打印机附带软件,让您设计纸质标签的布局(这使生活变得非常简单)。我们使用这个软件来创建初始布局。控制代码本身包含用于配置打印机的所有命令(标签大小等 - 毫无疑问,有很多不同的格式和大小,如上所述:它实际上取决于用例)。