2010-06-22 88 views
0

我必須通過C#和Zebra .Net SDK將自定義字體文件發送到Zebra MZ 220打印機。該SDK提供了一個SendFile()方法,它可以很好地處理模板文件,但是每當我發送字體文件時,打印機在接收文件時都會開始打印文件。 斑馬軟件標籤Vista有一個菜單選項發送字體,但我必須做的是以編程方式。如何通過.Net SDK將字體文件發送到斑馬打印機(MZ 220)?

有誰知道如何發送字體文件到打印機?

非常感謝您

twickl

+0

這些字體文件是否已經以Zebra格式編碼,還是Truetype或其他Windows格式? – 2010-08-03 19:16:34

回答

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

我和LP 2824從here合作,以自動打印與EPL標籤和使用微軟的RawPrinterHelper類,與bug修復。該類有一個可能值得一試的SendFileToPrinter方法(我沒有使用它,所以我不知道它是否適用於字體)

1

我想補充詹姆斯的答案。他的確是正確的'! CISDFCRC16'通話確實有效。

我最初遇到了很多麻煩,因爲我實現了自己的CRC和Checksum邏輯。

將文件上傳到打印機時,我總是收到打印機發出的「Checksum failed」消息。即使在執行CPCL編程手冊中給予我們的CRC /校驗和邏輯之後。

我設法得到這個工作的唯一方法是通過使用Zebra的CpclCrcHeader類使用CpclCrcHeader.getCRC16ForCertificateFilesOnly(字節陣列).toUpperCase()和使用CpclCrcHeader.getWCheckSum校驗和計算CRC(字節陣列) .toUpperCase()

希望能夠幫助其他人想要管理其Zebra打印機上的所有文件。

相關問題