gpt4 book ai didi

java - 使用 zpl 命令使用斑马打印机打印图像

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:53 31 4
gpt4 key购买 nike

我正在尝试使用 zpl 语言在斑马打印机(LP-2844-Z)上打印图像。在 ZPL 文档中,它说您必须将图像转换为 ASCII HexaDecimal。然后使用GF命令就可以打印图像了。我尝试下面的代码来获取图像并将其转换为十六进制

URL oracle = new URL(urlString);
URLConnection yc = oracle.openConnection();
BufferedImage bufferedImage = ImageIO.read(yc.getInputStream());
int rowsData = bufferedImage.getWidth()/8;
System.out.println(rowsData);
byte[] pixel = ((DataBufferByte)bufferedImage.getRaster().getDataBuffer()).getData();
System.out.println(pixel.length);
System.out.println(Hex.encodeHex(pixel, false));

然后我尝试使用斑马打印机打印此数据,但它没有打印正确的图像。我尝试了另一个代码来获取图像字节并将其转换为十六进制

URL oracle = new URL(urlString);
URLConnection yc = oracle.openConnection();
InputStream inputStream = yc.getInputStream();
byte[] imageData = IOUtils.toByteArray(inputStream);
System.out.println(Hex.encodeHex(pixel, false));

我仍然无法打印正确的图像。我关注以下网址(http://labelary.com/viewer.html)并尝试在我们上传图像时查看代码。我发现上传图像后,斑马查看器生成的base64与我使用上面代码生成的完全不同。我浏览了 stackoverflow 上的几篇文章,但仍然无法解决这个问题。

我知道我哪里做错了,但我不知道如何解决。实际上我无法为给定图像生成 ASCII Hex Base64 代码。这是我的想法。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

尝试一下这个功能:

private static String zplEncode(String graphicFileLocation) {
Path imagePath = Paths.get(URI.create("file://" + graphicFileLocation));
String returnResults = "";
try {
byte[] binaryData = Files.readAllBytes(imagePath);
for (byte b : binaryData)
{
String hexRep = String.format("{0:X}", b);
if (hexRep.length() == 1)
hexRep = "0" + hexRep;
returnResults += hexRep;
}
} catch (IOException ex) {
// Do something here
}
return returnResults;
}

我基于this answer from 2012 .

关于java - 使用 zpl 命令使用斑马打印机打印图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37434525/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com