0

我必须通过 C# 和 Zebra .Net SDK 将自定义字体文件发送到 Zebra MZ 220 打印机。该 SDK 提供了一个 SendFile() 方法,它可以完美地与模板文件一起使用,但是每当我发送一个字体文件时,打印机就会在接收它时开始打印出文件。Zebra Software Label Vista 有一个菜单选项发送字体,但我必须以编程方式进行。

有谁知道如何将字体文件发送到打印机?

非常感谢你

twickl

4

3 回答 3

1

我使用 LP 2824 使用 EPL 自动打印标签,并使用 Microsoft 的RawPrinterHelper类,并从此处修复错误。该类有一个 SendFileToPrinter 方法,可能值得一试(我没有使用它,所以我不知道它是否适用于字体)

于 2010-06-22T08:58:42.033 回答
1

您需要将文件包装在一个特殊的下载命令中,以便打印机存储该文件。

该命令在“CISDFCRC16”下的ZPL 指南中有详细说明。

命令的基本格式 -

! 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 文件,然后使用此命令将其发送下来。

于 2010-08-03T19:13:34.373 回答
0

我想补充詹姆斯的答案。他确实是正确的'!CISDFCRC16' 调用确实有效。

我最初在让它工作时遇到了很多麻烦,因为我实现了自己的 CRC 和校验和逻辑。

将文件上传到打印机时,我总是从打印机中收到“校验和失败”消息。即使在实现了 CPCL 编程手册中提供给我们的 CRC/校验和逻辑之后。

我设法让它工作的唯一方法是使用 Zebra 的 CpclCrcHeader 类来计算 CRC,使用CpclCrcHeader.getCRC16ForCertificateFilesOnly(byteArray).toUpperCase()和使用CpclCrcHeader.getWCheckSum( byteArray).toUpperCase() 的校验和

希望这可以帮助任何想要管理其 Zebra 打印机上所有文件的人。

于 2012-07-26T17:01:50.210 回答