我写了个小公司的财务管理的软件,需要打印,我直接用的API打印,但是不同的打印机上打出来的效果不同,比如我已经设置好TextOut的位置,但是在别的打印机上出来的位置却变了,请问这是为什么,谢谢

解决方案 »

  1.   

    不同的打印机可能处理的位置不同
    如果是比较小的差距应该不是你的问题差距比较大会不会是映射模式的关系。
    你用DeviceCapabilites查询一下打印机参数。特别是打印机的可列印范围。
    [ SDK_DDK_Printer ]
      

  2.   

    //我的打印代码是这样的,请帮忙看看谢谢
    bool Printer::PrintArea(HDC hdcPrn,CString str,CString str2,int iLine)
    {
    bool bSuccess;
    static DOCINFO di = { sizeof (DOCINFO), TEXT ("打印: 正在打印,请稍后...") } ;
    if(hdcPrn==NULL){
    MessageBox(NULL,"Error","Error",0);
    return false;
    }
    if (StartDoc (hdcPrn, &di) > 0) {
    if (StartPage (hdcPrn) > 0) {
    TextOut(hdcPrn,20,iLine*300,str,str.GetLength());
    TextOut(hdcPrn,20,iLine*300+100,str2,str2.GetLength());
               if (EndPage (hdcPrn) > 0)
                    EndDoc (hdcPrn) ;
               else
                    bSuccess = false ;
    }
    }
    else
    bSuccess = false ;
    return bSuccess;
    }