【问题标题】:Logo image center aligned issue in thermal printer Android热敏打印机Android中的徽标图像中心对齐问题
【发布时间】:2020-10-22 11:24:04
【问题描述】:

您好几天以来,我试图在 Android 上的发票上打印图像我做了所有事情,在搜索几天后,徽标打印在发票上,但现在我遇到了图像无法在中心打印的问题我已按照所有这些步骤进行打印图片 (http://new-grumpy-mentat.blogspot.com//2014/06/java-escpos-image-printing.html) 但这就是我在左侧得到的图像,但我希望在中心获得此图像,请指导我

【问题讨论】:

    标签: android printing bitmap thermal-printer


    【解决方案1】:

    有两种可能的方法。


    一种是准备与纸张宽度相同大小的图像数据,并将logo图像放在中心。

    需要在当前可见的标志图像的左右制作大的白色部分,即使该部分未打印,但客户要求已更改,整个纸张宽度将准备好并发送数据用过的。但是,数据量没有变化。

    通过应用它,可以通过只准备图像左侧空白区域的数据来减少右侧空白区域的数据。


    另一种是在打印图像之前用ESC a命令指定打印内容的居中。

    这应该在行首不发送打印请求。

    请参考此页。
    ESC a

    [姓名]
    选择理由

    [格式]

    ASCII   ESC  a  n
    Hex     1B  61  n
    Decimal 27  97  n
      n    Justification
    0, 48  Left justification
    1, 49  Centered
    2, 50  Right justification
    

    打印logo后,需要将中心向左返回。

    【讨论】:

    • 可以给我一些代码吗?或任何方法来查找打印机纸张宽度?
    • 例如,本文中的两个答案都会有所帮助。 ESC/POS thermal printer, how to center a bitmap image in Android?纸张宽度会写在用户手册或规格中。
    • 我不能以编程方式获取纸张宽度吗?
    • 相反,为什么要以编程方式读取呢?如果您将其作为库制作,您可以从应用程序中指定它,如果是应用程序,则不太可能在实际业务时未确定纸张宽度。这是因为您需要购买和准备打印机和卷纸。
    • 因为有不同类型的用户使用48mm尺寸的纸张,有些使用80mm尺寸的纸张
    【解决方案2】:

    添加此打印机命令

    public static final byte[] ESC_ALIGN_CENTER = new byte[] { 0x1b, 'a', 0x01 };    
    

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 2014-02-02
      • 2017-06-21
      • 2019-06-13
      • 2021-09-12
      • 1970-01-01
      • 2013-03-20
      • 2014-12-13
      • 2021-07-21
      相关资源
      最近更新 更多