Как отправить файл шрифта на принтер Zebra (MZ 220) через .Net SDK? - PullRequest
0 голосов
/ 22 июня 2010

Я должен отправить пользовательские файлы шрифтов на принтер Zebra MZ 220 через C # и Zebra .Net SDK.Этот SDK предоставляет метод SendFile (), и он хорошо работает с файлами шаблона, но всякий раз, когда я отправляю файл шрифта, принтер начинает распечатывать файл при его получении.В Zebra Software Label Vista есть пункт меню «Отправить шрифт», но мне приходится делать это программно.

Кто-нибудь знает, как отправить файлы шрифтов на принтер?

Большое спасибо

twickl

Ответы [ 3 ]

1 голос
/ 03 августа 2010

Вам потребуется заключить файл в специальную команду загрузки, чтобы принтер сохранил файл.

Команда подробно описана в Руководстве ZPL в разделе "CISDFCRC16".

Основной формат команды -

! 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.Вам нужно будет преобразовать шрифт в файл .CPF с помощью Label Vista, а затем отправить его с помощью этой команды.

1 голос
/ 22 июня 2010

Я работал с LP 2824 для автоматической печати этикеток с EPL и использовал класс RawPrinterHelper от Microsoft с исправлением ошибки из здесь .В классе есть метод SendFileToPrinter, который стоит попробовать (я не использовал его, поэтому не знаю, работает ли он для шрифтов)

0 голосов
/ 26 июля 2012

Я хотел бы добавить к ответу Джеймса. Он действительно прав! CISDFCRC16 'вызов работает.

Однако у меня изначально было много проблем с тем, чтобы заставить его работать, потому что я реализовал свою собственную логику CRC и Checksum.

При загрузке файла на принтер я всегда получал сообщение «Сбой контрольной суммы» из принтера. Даже после реализации логики CRC / Checksum, данной нам в руководстве по программированию CPCL.

Единственный способ заставить это работать - использовать класс CpclCrcHeader от Zebra для вычисления CRC с использованием CpclCrcHeader.getCRC16ForCertificateFilesOnly (byteArray) .toUpperCase () и контрольной суммы с использованием * 100rcHccl .getWCheckSum (ByteArray,) .toUpperCase ()

Надеюсь, что это поможет всем, кто хочет управлять всеми файлами на своих принтерах Zebra.

...