使用Android在Android MZ320中使用cpcl打印图像和文本

时间:2018-06-11 10:22:05

标签: java android zebra-printers

我尝试使用像该模板这样的Cpcl格式打印收据中的图像和文本。我有一个示例设置徽标作为变量和使用函数来读取图像作为字符串,但该示例中的图像是CPCL格式我尝试了很多,以使我的徽标作为cpcl格式,但我不能这样,我需要知道如何将我的图像徽标作为cpcl格式或其他方式设置图像和文本,如该模板。

=============================================== =====

press here to see the image, this image have the ticket printed from worked example and that is what i need exactly but i can't change image to new one.

//this template used to design my ticket which it has image and text in the same ticket like what i need.

    ! 0 200 200 1050 1

    PW 575

    TONE 0

    SPEED 3

    ON-FEED IGNORE

    NO-PACE

    BAR-SENSE

    BT 0 4 6

    B 128 3 30 120 20 0 ${barcode}

     /* the line below is used to set image as a string variable initialized
     in code from image i have in the worked example which its extension
    logo.cpcl" I don't know how it comes? and i need to change new logo to 
    Cpcl from png too "newlogo.png -> newlogo.cpcl" "pcx" x, y, data"*/

    PCX 420 790 ${Logo}

    ML 32

    T270 7 0 550 170 ${typeTicket}

    ENDML

    ML 32

    T270 7 0 498 170 ${validPeriod}

    ENDML

    ML 25

    T270 7 0 446 170 ${park}

    ENDML

    ML 32

    T270 7 0 370 170 ${price}

    ENDML

    ML 25

    T270 7 0 300 170 ${termsOfUse}

    ENDML





    PRINT

=================================

//这个函数只是为了理解我用来读取图像的内容。

[//this line I use to call the function to read cpcl image!
//and here we got the image from resources

result = StringUtils.replace(result, "${Logo}", PrinterUtil.readFormat(context, R.raw.logo));


//this is the code used to read image as a string and it works perfectly with the example.

public static String readFormat(Context context, int formatRes) {

  InputStream is = null;

   try {

  is = context.getResources().openRawResource(formatRes);

   try {

   return readString(is);

  } catch (IOException e) {

   return null;

  }

  } finally {

   if (is != null) {

   try {

  is.close();

  } catch (IOException e) {

  }

  }

  }

}][1]

1 个答案:

答案 0 :(得分:0)

我尝试了很多解决方案,但是它也不起作用。 我有旧代码在cpcl扩展中使用图像作为aلاfile而不是png或jpg我不知道它是怎么来的? 但是当我在文档中搜索时,我发现了该命令,并使用打击步骤完成了该操作。

如何在Android应用中使用CPCL更改票证中的徽标?

1。您必须按照以下步骤进行更改,并使其与 Zebra打印机MZ320和iMZ320 一起使用:

  • 首先,您必须使用此链接将图像更改为黑白图像。 https://pinetools.com/threshold-image

  • 此后,您必须从其像素中以二进制文本形式获取它,并使用此链接https://www.dcode.fr/binary-image使用自定义宽度= 120调整其大小。

  • 复制从图像导出的二进制文本,并将其粘贴到文本编辑器(如notebad ++)中。

2。将图像中的所有(1)都更改为(F)大写字母。

3. your_ticket.cpcl 然后,您必须在其中使用此命令

`EXPANDED-GRAPHICS [ByteWidth] [Height] [X] [Y] [Data]<CR><LF>`.

4.ByteWidth是数据中第一行的字节大小,如下例所示。

5。高度是数据中的行数

6.Data是图像数据,它是从文本编辑器复制并像该示例那样编写的。

7。示例:

扩展图形10 6 30 30 FFFFFFFFFFFFFFFFFFFF

FFFFFFFFFFFFFFFFFFFFFF

FF0000FFFFFFF00000FF

FF00000FFFFF000000FF

FF000000FFF0000000FF

FFFFFFFFFFFFFFFFFFFFFF

  • 如果发现图像不清楚,请测试图像数据并打印票证,然后尝试将图像像该图像一样向右旋转35度。