| 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指令怎麼用了. |