发布一个支持大量文本打印的PrintDocument派生对象,公开源代码。
最近,有一个项目中的某个需求,需要将一篇或几篇大文本,就像毕业论文那样的文章输出到打印机上,我参考了包括CodeProject中的许多公开源代码的示例,发现在CodeProject中的代码例子针对的都是英文文本,而专门处理英文的代码对中文的字符串测量并计算大小的方法很不好,经常出现文本丢失的错误。
所以我参考CodeProject上的一部分代码,经过我的重新修改写出了这部分文本打印代码。
功能:
1 有三个构造器,分别是无参数构造器,string 参数构造器和一个Stream 参数构造器,表示它可以从一个大字符串,一个数据流中获取要打印的内容。
2 支持定义每页打印的行数。
3 支持自定义打印页眉页脚内容。
4 自动打印和分页。
缺点:
1 处理中文的格式算法还不够完美,打印预览时的行间距太近,比较难看。
2 比不上word,无法对文本中的标题等内容进行特殊的字体样式处理,即打印出来的内容文本字体统统一样。
单击此处下载
所以我参考CodeProject上的一部分代码,经过我的重新修改写出了这部分文本打印代码。
功能:
1 有三个构造器,分别是无参数构造器,string 参数构造器和一个Stream 参数构造器,表示它可以从一个大字符串,一个数据流中获取要打印的内容。
2 支持定义每页打印的行数。
3 支持自定义打印页眉页脚内容。
4 自动打印和分页。
缺点:
1 处理中文的格式算法还不够完美,打印预览时的行间距太近,比较难看。
2 比不上word,无法对文本中的标题等内容进行特殊的字体样式处理,即打印出来的内容文本字体统统一样。
单击此处下载