Printer的学习

来源:互联网 发布:无主之地mac 迅雷下载 编辑:程序博客网 时间:2024/05/18 11:29

GetDeviceCaps(Printer.Handle,LOGPIXELSX);获得水平方向每英寸多少个点
GetDeviceCaps(Printer.Handle,LOGPIXELSY) 获得竖直方向每英寸多少个点

像我的的打印机hp
GetDeviceCaps(Printer.Handle,LOGPIXELSX);=600
GetDeviceCaps(Printer.Handle,LOGPIXELSY);=600

A4纸的尺寸是210x297毫米 ,
1英寸=25.4毫米,
经过换算 210/25.4*600 大于等于4961
        297/25.4*600 大于等于7016

A4转成成点4961*7016

这个和
GetDeviceCaps(printer.Handle,PHYSICALWIDTH) 
GetDeviceCaps(printer.Handle,PHYSICALHEIGHT)
是一致的


但是打印的时候有两边是有边距不能打印的
GetDeviceCaps(printer.Handle,PHYSICALOFFSETX)=88
GetDeviceCaps(printer.Handle,PHYSICALOFFSETY)=84

实际A纸的可打印的点式 4784*6848


GetDeviceCaps(printer.Handle,HORZRES)  这个就是Printer.PageWidth
GetDeviceCaps(printer.Handle,VERTRES) 这个就是Printer.PageHeight
相等
 

你可以直接用Printer.PageWidth 和 Printer.PageHeight
直接计算打印机可以尺寸的比例