針式打印機走紙控制

針式打印機走紙控制,下面簡單介紹一下不易發現但需要注意的地方:
1、把EPSON LQ-300K+II的驅動程序換成EPSON LQ-1600K。(我電話過EPSON的客服,對方告訴我EPSON LQ-300K+II的驅動是不支持走紙控制的,一定要換成EPSON LQ-1600K!EPSON LQ-1600K的驅動是XP自帶的,只要在打印機安裝裏搜索一下就有它的驅動安裝程序)。

2、我在測試的時候缺少連續進紙的那種兩邊帶孔的連續紙(一般爲財務用紙),所以,我用A4紙進行測試。由於進紙口不同,打印機在單頁紙設置時是不支持進走紙控制的。所以,之前幾天的測試總是失敗!記住:必須使用連續紙進紙!!且把打印機右邊的“過紙控制桿”推在連續走紙的位置!

3、如果使用代碼控制走紙請跳過本條直接看第4條。如果使用word 等軟件打印的話,請繼續看完本條。
      開始——》設置——》打印機和傳真——》窗口空白處右鍵單擊——》服務器屬性——》創建新格式——》紙張大小處請精確填寫所須打印的紙張長寬——》確定——》確定

        打印時,在所用軟件的頁面設置裏對紙張進行設置。注意,不是打印設置中的紙張設置!!是文件——》頁面設置!!
因爲EPSON客服告訴我,該打印機是軟件設置優先。對打印中的設置是驅動設置,會被頁面設置中的軟件設置覆蓋掉!

4、如果使用代碼控制,請參考下面代碼:(VC++)(代碼從其他地方借鑑而來,非本人編寫。經測試,可以實現。)
BOOL PrintChitty() //打印函數
    { HDC PrintDC;
     DOCINFO docin;
    
     docin.cbSize = sizeof(DOCINFO);
     docin.lpszDocName = "TestDoc";
     docin.lpszOutput = NULL;
    
     CPrintDialog PrintDialog(TRUE,PD_ALLPAGES|PD_NOPAGENUMS,NULL);
    // if(!PrintDialog.GetDefaults()) return FALSE; //如果不用打印設置對話框,使這一行有效
    
     PRINTDLG *pPrintDlg = &PrintDialog.m_pd;
     AfxGetApp()->GetPrinterDeviceDefaults(pPrintDlg);
     DEVMODE* lpDevMode = (DEVMODE*)::GlobalLock(pPrintDlg->hDevMode);
     ::GlobalUnlock(pPrintDlg->hDevMode);
    
     lpDevMode->dmFields |= -1; //設定爲自定義紙張尺寸, 如果用其他預定義的紙張尺寸,把這一行去掉,用下一行
     //lpDevMode->dmPaperSize = DMPAPER_A5; //設定爲 A5 紙
    
     lpDevMode->dmPaperLength = 300; //設定紙長爲 3 釐米
     lpDevMode->dmPaperWidth = 300; //設定紙寬爲 5 釐米
    
     if(PrintDialog.DoModal()!=IDOK) return FALSE; //顯示打印設置對話框(不顯示把這一行去掉)
    
     PrintDC = PrintDialog.CreatePrinterDC(); // 返回一個打印DC句柄
     StartDoc(PrintDC,&docin); // 啓動打印工作
     StartPage(PrintDC); // 一頁開始
     TextOut(PrintDC,10,10,"打印內容",8); //打印內容
     EndPage(PrintDC); // 一頁結束
     EndDoc(PrintDC); // 終止打印工作
    
     if(DeleteDC(PrintDC)) return TRUE; // 刪除打印機DC
     else { ::MessageBox("出錯"); return FALSE; }
    }

5、點擊確定!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章