簡體   English   中英

為什么我的文字無法打印?

[英]Why does my text not print?

意識到我應該使用行打印模式(而不是標簽模式)將CPCL發送到Zebra QL 220帶式打印機,我正在重構我的工作代碼( 為什么所有的東西都在同一行上打印,即使我要添加crlfs嗎? ):

serialPort.Write("! 0 200 200 210 1\r\n"); 

serialPort.Write(string.Format("! U1 setvar {0} {1}", "device.languages", "line_print"));
serialPort.Write("Hallo die Welt\r\n\r\n"); //Bonjour le Monde --- Hola el Mundo --- Hallo die Welt

serialPort.Write("BARCODE-TEXT 7 0 5\r\n"); 
serialPort.Write(string.Format("BARCODE 128 1 1 50 150 130 {0}\r\n\r\n", barcode));
serialPort.Write("POSTFEED 120\r\n"); // empirical observation shows 120 is about the right amount of extra tape to expel after printing
serialPort.Write("PRINT\r\n");

這會打印條形碼及其下方的可讀數字(“條形碼”中的值),但不會打印文本“ Hallo die Welt”。 為什么不? 我是否需要在每行之后打電話給Print,還是... ???

更新

它仍然僅使用以下代碼打印條形碼(不打印“ Hallo die Welt”):

serialPort.Write("! 0 200 200 210 1\r\n");
serialPort.Write("! U1 SETLP 7 0 24\r\n"); 
serialPort.Write("Hallo die Welt\r\n\r\n"); 
serialPort.Write("BARCODE-TEXT 7 0 5\r\n"); 
serialPort.Write(string.Format("BARCODE 128 1 1 50 150 130 {0}\r\n\r\n", barcode));
serialPort.Write("POSTFEED 120\r\n");
serialPort.Write("PRINT\r\n");

更新2

這有效(標簽模式):

serialPort.Write("! 0 200 200 210 1\r\n");
serialPort.Write("TEXT 4 0 30 40 Hallo die Welt\r\n\r\n"); //Bonjour le Monde --- Hola el Mundo --- Hallo die Welt
serialPort.Write("BARCODE-TEXT 7 0 5\r\n"); 
serialPort.Write(string.Format("BARCODE 128 1 1 50 150 130 {0}\r\n\r\n", barcode));
serialPort.Write("POSTFEED 120\r\n"); 
serialPort.Write("PRINT\r\n");

它打印:

~~~~~~~~~~~~~~~~~~~~~~~
Hallo die Welt

<barcode as a barcode>
<barcode as a number>
~~~~~~~~~~~~~~~~~~~~~~~

...但是這不起作用(行打印模式):

serialPort.Write(string.Format("! U1 setvar {0} {1}", "device.languages", "line_print"));
serialPort.Write("! U1 SETLP 7 0 24\r\n");
serialPort.Write("Hallo die Welt\r\n\r\n");
serialPort.Write("! U1 BARCODE-TEXT 7 0 5\r\n");
serialPort.Write(string.Format("! U1 BARCODE 128 1 1 50 150 130 {0}\r\n\r\n", barcode));
serialPort.Write("! U1 SETLP 5 2 46"); 
serialPort.Write(barcode);
serialPort.Write("! U1 PRINT\r\n");

問題是,我需要使用行打印模式。

每個SGD命令后,您還需要一個\\ r \\ n(在這種情況下,您的setvar)

它應該是

U1 setvar“ device.languages”“ line_print” \\ r \\ n

您還需要在SETVAR命令的2個參數周圍加上雙引號。

更新:

哦,順便說一句,僅僅是因為打印機處於line_print模式,並不意味着它不理解CPCL代碼。 因此,以上示例中的代碼是CPCL代碼,而不僅僅是行打印。 如果您將TEXT放在前面,那應該可以

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM