PageSetupDialog 控件页边距bug的完整解决



       打印设置对话框点击确定页边距不断变化的问题,网上找到了一部分解决办法,都是只解决了打印设置对话框点击确定页边距不断变化的问题,没有解决初次打开对话框的数据准确问题、没有考虑和打印预览、真实打印设置数据准确联动的问题,也就是打印预览里的边距那些数据的同步。

       如果用户的区域采用美制,那么完全没有此BUG;但采用公制,系统底层一律会将对话框设置的边距保存为以百分之一英寸为单位,但是读取的时候出了叉子,以十分之一毫米为单位提取到对话框里,这就是bug的由来。比如默认设置100(官方说明:Margins ,表示页边距,以百分之一英寸为单位。 默认情况下各边的边距都为 1 英寸),100(十分之一毫米)转换为毫米,那么对话框里显示10毫米,实际上应该为25.4毫米,也就是1英寸。同时预览对话框(以百分之一英寸为单位)理应为100。另外,如果几个对话框都关联到打印文档的话,无论设置哪个的页边距,都会同时变化,也就是说他们引用和设置的都是同一个对象。上代码:

Imports System.IO
Imports System.Drawing.Printing

Public Class Form1

    Private stringToPrint As String
    Private printFont As New Font("Ar
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值