现有一台针式打印机,程序定时判断一个条件,成立的时候,打印机打印一行字符。现在问题式打印机打出一行后,纸自动退出,哪位高手指点一下?如何在打印完一条后,下一条来了后,在下一行打印。

解决方案 »

  1.   

    用WritePrinter 直接写,不能用StartDoc!
      

  2.   

    void CMainFrame::Print(CString str)
    {
    HANDLE h;
    LPCTSTR lpszInfo;
            lpszInfo = str;
    CString m_devicename;
    CPrintDialog printDlg(FALSE);

    if (printDlg.DoModal() == IDCANCEL) 
    return;

    m_devicename=printDlg.GetDeviceName();   

    OpenPrinter((LPTSTR)(LPCTSTR)m_devicename,&h,NULL);
    DWORD dw;
    DOC_INFO_1 di;
    di.pDocName = "报警一览";
    di.pOutputFile = NULL;
    di.pDatatype = NULL;
    StartDocPrinter(h,1,(LPBYTE)&di);

    WritePrinter(h,(void*)lpszInfo,strlen(lpszInfo),&dw);
    EndDocPrinter(h);
    ClosePrinter(h); 
    }现在改成这样,但是打印机没有反映,高手帮忙!