全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2672
推到 Plurk!
推到 Facebook!

writeprinter如何列印中文?

缺席
lkw
一般會員


發表:10
回覆:6
積分:3
註冊:2006-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-27 19:06:50 IP:219.84.xxx.xxx 訂閱
小弟在參考了前輩的文章後.利用下列程式碼友達到單行英文列印.
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.
想請問大大門.如何解決這個問題
系統時間:2024-04-20 4:25:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!