我必须通过C#和Zebra .Net SDK将自定义字体文件发送到Zebra MZ 220打印机。该SDK提供了一个SendFile()方法,它可以很好地处理模板文件,但每当我发送一个字体文件时,打印机会在接收文件时开始打印文件。 Zebra Software Label Vista有一个Menu选项Send Font,但我必须以编程方式执行。
有谁知道如何将字体文件发送到打印机?
非常感谢
twickl
答案 0 :(得分:2)
我使用LP 2824自动使用EPL打印标签并使用了Microsoft的RawPrinterHelper类,并修复了here中的错误。该类有一个SendFileToPrinter方法,可能值得一试(我没有用它,所以我不知道它是否适用于字体)
答案 1 :(得分:2)
您需要将文件包装在特殊的下载命令中,以便打印机存储文件。
该命令详见“CISDFCRC16”下的ZPL Guide。
命令的基本格式 -
! CISDFCRC16
<crc> // 4 digit hex CRC. Enter 0000 to turn off CRC check.
<filename> // file name with extension. 8.3 filenames only.
<size> // eight digit hex file size in bytes.
<checksum> // four digit hex checksum. Enter 0000 to turn off checksum validation.
<data> // Binary data to store
这将允许您将文件存储在打印机的文件系统中。
注意:打印机无法理解典型的.ttf文件。您需要使用Label Vista将字体转换为.CPF文件,然后使用此命令将其发送下来。
答案 2 :(得分:1)
我想补充詹姆斯的回答。他确实是正确的'! CISDFCRC16'呼叫确实有效。
因为我实现了自己的CRC和校验和逻辑,所以我最初在使用它时遇到了很多麻烦。
将文件上传到打印机时,我总是收到打印机发出的“Checksum failed”消息。即使在实施CPCL编程手册中给出的CRC /校验和逻辑之后也是如此。
我设法使其工作的唯一方法是使用Zebra的CpclCrcHeader类使用 CpclCrcHeader.getCRC16ForCertificateFilesOnly(byteArray).toUpperCase()计算CRC,并使用计算校验和CpclCrcHeader.getWCheckSum(字节阵列).toUpperCase()强>
希望能帮助其他任何人想要管理Zebra打印机上的所有文件。