准备ZPL命令以打印单色铬位图图像

时间:2013-07-22 12:30:15

标签: c# image zebra-printers zebra-striping

我在准备用于在Zebra RZ400 300 dpi上打印位图图像的ZPL命令时遇到问题。

我有完整的代码片段,我不明白我在哪里犯了错误。

var bitmapImagePath = @"C:\Sample.bmp";

//Gets the size of the bitmap file
 long bitmapDataFileSize = new FileInfo(bitmapImageFilePath).Length;

byte[] bitmapData = System.IO.File.ReadAllBytes(bitmapImageFilePath);
string hexadecmimalString = BitConverter.toString(bitmapData).replace("-", string.empty);

 double widthInBytes = Math.Ceiling(bitmapDataWidth / 8.0);

string str = "";
            return str = "^XA^FO100,100^GFA," + //At Postion 100, 100
                bitmapDataSize.ToString() + "," +     // Total bytes of data to be placed
                bitmapDataSize.ToString() + "," +     // Total bytes of data to be placed, repeats as per API
                widthInBytes + "," + //
                hexadecmimalString + "^XZ";

你能告诉我哪里出错吗? 我可以使用Multiplat form SDK API进行打印,但我只对符合我要求的^ GFA或^ GFB命令感兴趣。

请建议我准备打印任何给定图像的^ GF命令。

1 个答案:

答案 0 :(得分:1)

https://stackoverflow.com/questions/7083180/print-bmp-with-zpl?rq=1

那应该为你做的伎俩。由于您是新会员,我强烈建议您使用搜索功能。

这一行:

var bitmapImagePath = :C:\\Sample.bmp";

应该是

var bitmapImagePath = @"C:\Sample.bmp";

您可能有两种选择。

如果您不需要使用ZPLII,则可以使用Zebra驱动程序安装打印机。这将允许您像使用常规桌面打印机一样使用Zebra打印机。然后,您可以使用标准的.Net函数构建标签进行打印,并将文档作为常规文档以编程方式发送到打印机。

如果这不是一个选项,你需要创建一个单色位图,我自己从来没有这样做过。但是,如果您不想编写转换器,可以使用img2grf进行转换。您需要将该库转换为.Net程序集,使用IKVM.可以轻松实现。有关如何使用IKVM的说明,只需访问HtmlUnit Conversion with IKVM并按照“将HtmlUnit转换为.NET“部分,它与转换img2grf的过程相同。