如何在任何打印机上进行相同的打印?

时间:2014-04-17 16:45:51

标签: c++ winapi

我一直在使用HORZRESVERTRES打印各种字符串。我一直在使用xps来测试我的打印等等,但是当我切换到我的实际计算机时,我注意到事情并没有打印出来。

  

如何获得实际页面的大小并从那里打印?

例如,如果我是用字母打印(8 1/2 x 12英寸)我怎样才能获得可用于任何打印机的通用测量

1 个答案:

答案 0 :(得分:0)

您可以使用SetMapMode更改映射模式。

如果您将映射模式设置为MM_LOENGLISH,则所有绘图将以1/100英寸为单位。在任何打印机上绘制长度为100的线条将为1英寸长,您不必担心打印机的分辨率。

如果您想了解有关该页面的更多信息,可以从GetDeviceCaps获取其他数据:

  • LOGPIXELSX - 每英寸水平像素数
  • LOGPIXELSY - 每英寸垂直像素数
  • PHYSICALWIDTH - 设备单元中页面的宽度
  • PHYSICALHEIGHT - 以设备为单位的页面高度

然后以英寸为单位的页面宽度为PHYSICALWIDTH / LOGPIXELSX,高度为PHYSICALHEIGHT / LOGPIXELSY