Virtual Printer文章

来源:互联网 发布:中国网络部队61398 编辑:程序博客网 时间:2024/06/08 10:57

 打印机打印的文件整体偏右,缩小了5-10%左右。

问题出现的步骤是在将EMF文件打印到纸张的时候,整份文件格式偏右,缩小10%左右。

做这个工作我们肯定需要绘制一个rect区域来与实际物理打印机的纸张一一映射.使用rect.top=emf.rclBounds.top造成的后果即如上述,top的参数为200多而非预料的0。

所以自己采取定义方式:  

    int nDpiX = GetDeviceCaps(hDC, LOGPIXELSX);
    int nDpiY = GetDeviceCaps(hDC, LOGPIXELSY);

    rect.top=rect.left=0;

    rect.right=emf.szlMillimeters.cx*nDpiX*10/254;

    rect.bottom=emf.szlMillimeters.cy*nDpiY*10/254;  

由于未深入MetaFile的结构,所以还未明了rclBounds非0的原因!待学习。


原创粉丝点击