writeprinter如何列印中文? |
缺席
|
lkw
一般會員 發表:10 回覆:6 積分:3 註冊:2006-07-12 發送簡訊給我 |
小弟在參考了前輩的文章後.利用下列程式碼友達到單行英文列印.
String st="012345678901234567890AAAAAAAAAAAA" AnsiString(char(0x0a));//0x0a換行(carriage) char *szPrinterName= ppstr.c_str(); char *szBuffer= st.c_str(); HANDLE hPrinter; int iLen = strlen(szBuffer);// 要列印傳送資料的長度 DWORD dwWritten; // 資料量多少 // 開啟並取得一個列印行程HANDLE if( OpenPrinterA(szPrinterName, &hPrinter, NULL) ) { //相關列印參數資訊 DOC_INFO_1 Info; int szInfo = sizeof(Info); memset(&Info, 0, szInfo); //清除buffer Info.pDocName = "The Test Print"; // 給個print專案名稱 Info.pOutputFile = NULL; //不存成檔案所以 NULL就可以 Info.pDatatype = "RAW"; //傳送模式使用 RAW Format // 開啟列印 if(!StartDocPrinterA(hPrinter, 1, (LPBYTE)&Info)) ShowMessage("StartDocPrinter Error~"); StartPagePrinter(hPrinter); // 開啟列印頁傳入指定的列印行HANDLE if(!WritePrinter(hPrinter, szBuffer, iLen, &dwWritten)) { ShowMessage("列印錯誤");// 寫入錯誤 } EndPagePrinter(hPrinter);//完成結束列印頁 if(!EndDocPrinter(hPrinter)) ShowMessage("關閉錯誤"); ClosePrinter(hPrinter);//關閉列印行程 ListBox1->Items->Add(st); } else { ShowMessage("OpenPrinter Error~"); } 問題就是如果我將st的內容改為中文字型後,所列印出來的不是正確的中文字. 我所使用的印表機是EPSON LQ2180C. 想請問大大門.如何解決這個問題 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |