• 打印函数如何适应不同的打印机


    不同打印设备的分辨率不同。
    热敏打印机、针式打印机、PDF虚拟打印机,分辨率不同,显示相同的距离(例如5cm)所需要的像素数不同。
    所以,如果创建GDI对象时,采用固定的像素值,那么在不同的打印设备上打印出来的图形、文字的实际大小是不同的。
    例如,创建字体,nHeight设为48,在热敏打印机上打印出来,文字高7mm,在针式打印机上打印出来就是6mm。
    为了在所有打印设备上,打印出相同的图形图像,需要根据打印机的分辨率动态创建GDI对象。

    代码示例:
    int iPixelYPerinch = pDC->GetDeviceCaps(LOGPIXELSY);//每英寸垂直逻辑像素数
    double dPixelYPerMM = iPixelYPerinch/25.4; //每毫米垂直逻辑像素数,1英寸对应25.4毫米

    //创建打印字体(图例、井深),2.5毫米
    int nHeight = (int)(2.5 * dPixelYPerMM);
    CFont *pFont_Prt = new CFont;
    pFont_Prt->CreateFont(nHeight,
    0,0,0,
    FW_NORMAL,FALSE,FALSE,0,
    DEFAULT_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    FF_MODERN,
    _T("宋体"));

  • 相关阅读:
    洛谷1280 尼克的任务
    洛谷1140 相似基因
    洛谷1133 教主的花园
    洛谷1130 红牌
    洛谷1122 最大子树和
    洛谷1103 书本整理
    洛谷1077 摆花
    【数学】数学知识习题小结(模板)
    python中的深拷贝和浅拷贝(面试题二)
    python中的深拷贝和浅拷贝(面试题)
  • 原文地址:https://www.cnblogs.com/xiaoyusmile/p/9999249.html
Copyright © 2020-2023  润新知