c# 打印的问题总结

近期 做了一个打印的类,有一下功能:

/// <summary>

/// 打印数据表格的类

/// 2016/05/19 @佳序

/// 功能:

/// 01、自动计算总页数,当前打印页数,信息记录页面右下角

/// 02、每页自动打印列标题,并且带背景色

/// 03、设置打印信息属性FMemoString,默认值为空,打印在页面左下角

/// 04、自动实现横纵打印:如果数据列总宽度

/// 大于可打印区域宽度的1.1倍,那么自动调整打印样式为横版打印

/// 05、自动按照列宽等比例放大缩小每列的宽度,使得数据列布满可打印区域

/// 06、设置是否合并单元格属性FIsMergeCell,默认不合并

/// 07、设置按某个列头名称合并单元格,将列头名称赋值给属性FMergeHeaderName属性,

/// 自动校验赋值正确与否

/// 08、只打印DataGridView的可见列

/// 09、可设置打印区域的上下左右页边距,不设置时取默认值

/// 10、允许单元格文字换行

/// 11、分页处不合并单元格

过程中使用了g.MeasureText()方法来测试字符串的大小,今天网上浏览到,可以使用

TextRenderer.MeasureText()方法,来测试字符串大小,因为这个函数不需要new Graphics

就能正常使用。