【问题标题】:How to give format and print data to a ticket printer in Java如何在 Java 中为票据打印机提供格式和打印数据
【发布时间】:2012-11-03 17:37:47
【问题描述】:

我开始做这样的事情,所以我需要一点帮助。

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

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

  • 或者它是否存在任何用于此目的的免费库?

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

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

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

  • 无需存储格式化数据。

提前致谢。

【问题讨论】:

    标签: java printing


    【解决方案1】:

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

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

    【讨论】:

    • FOP 我看确实不容易,它需要一些研究,但我会给它一个机会,因为它看起来比 PDFBox 更好。我先从Java api开始,然后我们会看到......关于生成一个html文件,它不允许指定页面大小,是吗?
    • "关于生成html文件,不允许指定页面大小,是吗?" - 可能不会,但我不确定。也许存在一些工具来做到这一点。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 这是否意味着那些打印没有使用window的打印机服务?我正在寻找一个通用的解决方案,并且不会太复杂。感谢您的信息。
    • 正确,不涉及 Windows 打印。对于 Zebras,我知道有一些 Windows 驱动程序可用于打印通用文档。
    猜你喜欢
    • 2013-04-17
    • 1970-01-01
    • 2013-05-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    相关资源
    最近更新 更多