1.启用页边距:
默认情况下PrintDocument是不理会页边距的(MS再次让人无语。。。),这也是为什么有人说明明设了页边距在打印预览里却没有效果的原因。
解决办法是设置PrintDocument对象的OriginAtMargins属性为True,如下:
printDocument1.OriginAtMargins = true; //启用页边距
再来看一下从元数据中提取的关于OriginAtMargins属性的定义:
//
// 摘要:
// 获取或设置一个值,该值指示与页关联的图形对象的位置是位于用户指定边距内,还是位于该页可打印区域的左上角。
//
// 返回结果:
// 如果图形起始于页面边距,则为 true;如果图形原点位于该页可打印区域的左上角,则为 false。默认为 false。
[DefaultValue(false)]
public bool OriginAtMargins { get; set; }
可以看到此属性的DefaultValue为false,所以如果不改的话,页边距设的再大也没有用。
2.PageSetupDialog中页边距的正常显示
这个问题一度搞得我有点儿心烦——每打开一次“页面设置”对话框,哪怕你不做任何更改就点“确定”关闭它,当你再打开它时你会发现,上面显示的页边距“神奇地”变小了。。。