不同打印设备的分辨率不同。
热敏打印机、针式打印机、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("宋体"));

转载于:https://www.cnblogs.com/xiaoyusmile/p/9999249.html

打印函数如何适应不同的打印机相关推荐

  1. c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...

    本文主要向大家介绍了C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. using System; using System.Co ...

  2. 打桥位lisp_通用打印函数,可指定参数,可打印pdf

    [code="lisp] ;打印函数,lujing可为nil,orpdf为T或nil,为T是打印pdf,为nil是打印到设备 (defun gm-dayin(dayinji tufu p1 ...

  3. c语言打印函数的使用

    在c语言编译的过程中printf函数起到十分重要的作用,他和打印机一样在电脑屏幕之上打印(显示)自己所需要的文本. c语言中打印函数比较重要其使用方法主要有二种: 一,直接打印文本或者数字,例如: # ...

  4. 易语言调用API之打印函数

    API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效 ...

  5. Windows API函数(打印函数)

    API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效 ...

  6. 发送文件到打印机,打印机收不到(无线打印机)

    发送文件到打印机,打印机收不到(无线打印机) 文章目录: 一.打印机收不文件 二.打印的时候说页数受限 一.打印机收不文件 在打印的时候,明明已经发送文件了,但是打印机那边还是查收不到.但是打印机旁边 ...

  7. 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

    文章目录 一.抽象 二维数组 业务函数 1.二维数组 打印函数 2.二维数组 排序函数 二.完整代码示例 一.抽象 二维数组 业务函数 1.二维数组 打印函数 注意 , 二维数组 作为 函数参数 输入 ...

  8. 网上有打印按键怎么设置下载_打印机共享怎么设置 如何设置打印机共享【详细攻略】...

    打印机共享怎么设置?如何设置打印机共享?要实现两台打印机或者是多台打印机共享,首先要了解如何设置并共享局域网内已连接好电脑的打印机,之后需要解决的是局域网内其它电脑如何找到刚才那台电脑共享出去的打印机 ...

  9. swift5优秀打印函数自定义

    swift5优秀打印函数自定义 func LJLog<T>(message: T,file: String = #file,funcName: String=#function,lineN ...

最新文章

  1. 第一章 java多线程
  2. [字符串]与[数组]的互相转换
  3. (37)一个合理的时序约束方法
  4. int指令02 - 零基础入门学习汇编语言65
  5. 微软操作系统总裁:Win8应用商店是发展必然
  6. Windows Server 2012 +WDK7600.16385.1+VS2010驱动开发环境搭建
  7. 30岁以后的人生,如何来逆袭?
  8. Linux 命令(138)—— nc 命令
  9. GestureDetector类的用法
  10. SylixOS 内存管理源代码分析--vmmMalloc.c
  11. 20款优秀的免费代码编辑器
  12. 写一个PE的壳_Part 4:修复对ASLR支持+lief构建新PE
  13. 地图中的矢量POI兴趣点
  14. 最新研究动向:智能制造中可应用的技术【区块链与数字孪生】
  15. Java入门-核心机制
  16. 开发技术-git修改用户名和邮箱地址
  17. 如何用手机开发单片机编写51或arduino等程序?
  18. 杀毒软件McAfee导致客户端访问mscrm超慢
  19. 数组排序(5) 快速排序之三指针分区法
  20. python编写程序求e的值_Python 程序设计实验报告4

热门文章

  1. 面向对象的软件测试技术
  2. NHibernate学习系列一
  3. T-SQL操作XML 数据类型方法 modify 的参数 1 必须是字符串文字。
  4. 利用存储过程来实现分页性能比较
  5. excel排名_WPS-Excel表格实用技巧——排位排名函数(RANK函数)的使用
  6. 添加打印机还显示脱机_打印机总是显示脱机无法打印的解决办法
  7. 大数据druid查询不支持分页_Druid实时大数据分析查询(六)
  8. 点击鼠标左键 自动锁定计算机图标,鼠标一按左键桌面图标就消失了怎么办_为什么按鼠标左键时桌面图标都不见了...
  9. 简述用决策表设计测试用例的步骤_决策表快速入门
  10. python数据分析工具包_脑成像数据分析:Python工具包