在一段打印程序中,我将打印模式设成了MM_LOMETRIC,可是使用不同的打印机打印出来的字的大小确不一样,使用HP1010(激光打印机)是正确的,可是使用一台喷墨打印和一台针式打印机打出的字的大小和位置就不对了.

解决方案 »

  1.   

    wenddy112你好:我在程序中使用的是宋体,在测试程序时是使用同一台计算机,只是更换了打印机。
      

  2.   

    我发现有很多人在论坛上问这个问题,大家普遍的观点是在程序中使用的打印模式,可是我现在是使用的
    MM_LOENGLISH啊
      

  3.   

    54783szg(浪淘沙):怎么才能实现使用不同的打印机而打印出来的东西是一样的,多谢!
      

  4.   

    在OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 里面写如下代码:         //设置影射模式为自定义
    pDC->SetMapMode(MM_ANISOTROPIC);

    CRect rcClient;
    GetClientRect(rcClient);

    CSize size(rcClient.right,rcClient.right);

    //设定当前的窗口
    pDC->SetWindowExt(size);

    //获取当前显示设备(显示器/打印机)每英寸中包含的象素点个数
    int xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX);
    int yLogPixPerInce = pDC->GetDeviceCaps(LOGPIXELSY);

    int xExt;
    int yExt;
    xExt = size.cx * xLogPixPerInch / 96 ;  // 96 为屏幕显示的每英寸象素数目
    yExt = size.cy * yLogPixPerInce / 96 ;

    pDC->SetViewportExt(xExt,yExt);
      

  5.   

    bobob(静思--潜心研究PDF)你好:小弟是一个十足的菜鸟,这段代码有点看不懂,能不能把大体的思路给说一下,多谢!