1. 程式人生 > >POS58票據熱敏印表機,怎麼用ESC/POS命令控制列印

POS58票據熱敏印表機,怎麼用ESC/POS命令控制列印

使用的是POS58票據熱敏印表機,怎麼控制文字大小?
我知道ESC/POS指令,可不會用。
ASCII :ESC ! n
十進位制 :27 33 n
十六進位制:1B 21 n

在C#裡用十進位制,是不是(char)(27)+(char)(33)+(char)(n)就可以把文字放大一倍列印了?
主要是想放大文字列印。n不知道取多少? 是48嗎?

比如要將"中國"這個字串放大一倍列印,具體怎麼寫的?

____________________________________________________

經過多次嘗試,終於搞懂了.

先用字元的形式傳送命令:

send = "" + (char)(27) + (char)(64) + (char)(27) + (char)(33) + (char)(48);

            for (int i = 0; i < send.Length; i++)
            {
                buf[i] = (byte)send[i];
            }

            fs.Write(buf, 0, buf.Length);

 解釋:  (char)(27) + (char)(64)是將印表機初始化, (char)(27) + (char)(33) + (char)(48); 是設定列印字元格式命令,最後的48可以為0,16,32,48

接著直接列印輸出:

printLPT.PrintData("中國" );

歡迎有同類問題的朋友指教!

*************************************************************************************

更正:其實可以把控制命令字元和輸出字元寫在一起.不管用什麼方式,如果是多條資料就要在一個輸出程式裡同時輸出,而不要寫成函式的形式來呼叫,那樣是不會成功的.這是我經過一天一夜研究出來的結果,網上也能找到ESC/POS列印指令使用的程式,人家就是寫在一起的,但沒有控制字元大小的例子.我自作聰明的把它改成一個函式,費了一天一夜的功夫才發現走了彎路.不過也值得,終於弄懂了ESC/POS指令怎麼用了.