【问题标题】:How to convert a bitmap to bytes using the Epson JavaPOS ADK如何使用 Epson JavaPOS ADK 将位图转换为字节
【发布时间】:2018-08-10 13:54:59
【问题描述】:

我想在 Epson POS 打印机上将收据打印为位图。打印机不是直接连接的。收据渲染在后端 web 服务上完成,生成的字节将被发送到实际连接打印机的前端。

所以我查看了 Epson JavaPOS ADK,但我发现只有代码可以调用直接连接的打印机,但没有实用程序类。

所以我的问题是:有谁知道使用 Epson JavaPOS ADK “打印”到字节而不是打印机的方法?

谢谢!

【问题讨论】:

  • 你要打印的内容都是一个Bitmap数据吗?是否存在文本和位图或多个位图的混合?
  • 数据将是 1 个位图(整个收据)

标签: java epson javapos


【解决方案1】:

可以想到以下方法。

  1. 存储在 BMP 文件中并打印。

    • 将从 Web 服务通知的位图数据作为 BMP 文件存储在前端文件系统中(不是浏览器的会话本地存储)。
    • 使用 POSPrinter 设备的printBitmap 方法打印 BMP 文件。
    • 打印正常完成后删除 BMP 文件。

  2. 打印内存中的数据。 (当EPSON JavaPOS和打印机支持时)

    • 将Web服务通知的Bitmap数据转换成内存上的BMP文件图像。
    • 使用 POSPrinter 设备的printMemoryBitmap 方法打印 BMP 文件图像。
    • 打印正常完成后,释放BMP文件图像的内存。

  3. (当前端是 Windows 机器时)在 Windows 标准打印机上打印。

    • 将打印机作为 Windows 标准打印机处理,而不是在 JavaPOS 中处理。
    • 将打印机模式设置和设备驱动程序切换为 Windows 标准打印机的设置。
    • 使用 Windows 标准打印 API 转换位图数据(如页面打印)并打印。

当然,需要将Web服务通知的Bitmap数据转换为BMP文件或Windows打印数据,但可以通过使用您的操作系统的API或Java库函数来完成。


根据评论添加后记。

在这种情况下,您可能使用的是 ePOS SDK 而不是 JavaPOS ADK。
但是,至少需要进行一些软件开发。

以下有四种,请根据你的前端环境试一试。

Epson ePOS SDK for Universal Windows apps
Epson ePOS SDK for Android
Epson ePOS SDK for iOS
Epson ePOS SDK for JavaScript

【讨论】:

  • 感谢 kunif 的回答。但我认为,我的问题不是很准确。基本上我知道流程,你描述的。问题是,在我的例子中,前端只能将原始字节发送到 pos 打印机,所以 web 服务必须以某种方式调用“printBitmap”方法。当然,后端没有连接打印机,所以我在 ADK 中寻找具体方法,它与“打印”方法相同,但返回原始字节,然后我可以发送到前端。 (我不想实现files.support.epson.com/pdf/general/escp2ref.pdf中描述的算法)
猜你喜欢
  • 1970-01-01
  • 2018-12-26
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2012-07-05
相关资源
最近更新 更多