發票印表機,BCB轉DELPHI,不知那有問題 |
尚未結案
|
shinnuei
一般會員 發表:32 回覆:48 積分:21 註冊:2002-03-13 發送簡訊給我 |
bcb這一段沒有問題,可以印得出來,但delphi這一段不知那有錯
請大大幫忙(發票機是TP3688)
這一段是bcb的程式碼
// 發票印表機連接介面 COM Port / LTP sBuffer = "COM4"; // COM Port 介面 hPrn=CreateFile(sBuffer, GENERIC_WRITE|GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); AnsiString commset; commset = "96,N,8,1"; BuildCommDCB(commset.c_str(), &dcb); //開啟寫入時操作速度會變慢 SetCommState(hPrn, &dcb); Sleep(300); SetCommState(hPrn, &dcb); memset(Buffer, 0x00, sizeof(Buffer)); sprintf(Buffer, "%c%c%c", 0x1b, 'R', 0x0d); WriteFile(hPrn, Buffer, strlen(Buffer), &dwfile, NULL); char buff[2]; data = "asdfasdfasdf"; memset(Buffer, 0x00, sizeof(Buffer)); memset(buff, 0x00, sizeof(buff)); sprintf(Buffer,"%c%c%c%c",0x1b,'P','B','1'); sprintf(buff,"%c",0x0d); WriteFile(hPrn, Buffer, strlen(Buffer), &dwfile, NULL); Sleep(30); WriteFile(hPrn, data, strlen(data), &dwfile, NULL); Sleep(30); WriteFile(hPrn, buff, strlen(buff), &dwfile, NULL); Sleep(30);這一段是delphi的程式碼 VAR cb : DCB; S, A, B, data : STRING; dwfile : Dword; vCom : STRING; hComm : THandle; BEGIN vCom := 'COM4'; hComm := CreateFile(PChar(vCom), Generic_Read OR Generic_Write, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); BuildCommDCB(pchar('9600,n,8,1'), cb); SetCommState(hComm, cb); Sleep(300); SetCommState(hComm, cb); //*設定通訊埠*/ s := format('%s', [#$1B 'R' #$0D]); WriteFile(hComm, s, strlen(pchar(s)), dwfile, NIL); a := format('%s', [#$1B 'P' 'B' '1']); b := format('%s', [#$13]); data := format('%s', ['adfasdfasfdadf']); WriteFile(hComm, a, strlen(pchar(a)), dwfile, NIL); Sleep(30); WriteFile(hComm, data, strlen(pchar(data)), dwfile, NIL); Sleep(30); WriteFile(hComm, b, strlen(pchar(b)), dwfile, NIL); Sleep(30); |
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
|
shinnuei
一般會員 發表:32 回覆:48 積分:21 註冊:2002-03-13 發送簡訊給我 |
謝謝 reptile 大大的回覆
我後來改成這樣,可以印,但還是不解
為什麼第一個部份要用這樣才可以印呢
這是第一部分
s := format('%s', [#$1B 'R' #$0D]); WriteFile(hComm, s, cardinal(10), dwfile, NIL);這是改完之後 s := format('%s', [#$1B 'R' #$0D]); WriteFile(hComm, s, cardinal(10), dwfile, NIL); ~~~~~~~~~~~~--->為什麼用length不行呢 a := format('%s', [#$1B 'P' 'B' '1']); b := format('%s', [#$13]); data := format('%s', ['adfasdfasf']); WriteFile(hComm, a[1], length(a), dwfile, NIL); Sleep(30); WriteFile(hComm, data[1], length(data), dwfile, NIL); Sleep(30); WriteFile(hComm, b, length(b), dwfile, NIL); Sleep(30); |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |