1

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

我有以下代码片段,但我不明白我在哪里犯了错误。

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 命令。

4

1 回答 1

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 的说明,只需访问使用 IKVM转换 HtmlUnit并按照“将 HtmlUnit 转换为 .NET”部分下的说明进行操作,转换 img2grf 的过程相同。

于 2013-07-22T12:59:16.147 回答