近期涉及到一个需求要求提供简单的打印功能,首先想到的winform的printDocument打印功能。之前有别的项目使用了这块进行了简单的封装,但是感觉有问题。问题很简单,之前的打印只能打印固定字体大小的内容。不好用。我不能自定义字体大小。
so,引出自己定义的需求。能不能自定义字体进行打印。而且简单粗暴不使用第三方控件。
首先百度了下网上的代码代码很多,但大多有存在问题,问题如下:
1.不能换行,因为使用RichTextBox之后固然是能够使用自定义字体了,但是问题也是存在的那就是不会给你自动换行,而且即使控件自动换行了也没用因为页面尺寸和控件尺寸并不一致。
2.打印会存在每一页只打印一部分的问题
围绕以上两个问题,我找了很多代码都不行,后来拼凑了下,并且找单位的大佬帮忙总算解决了,这里记录下:
首先拉出几个控件:
PrintDialog ,PrintDocument,FontDialog,PageSetupDialog,以及3个button。
依次说明下这些控件的作用,PrintDialog用于打印之前的提示框,PrintDocument用于存放答应的文本信息,FontDialog设置字体信息,PageSetupDialog设置打印的页面信息,三个button分别为:
以上控件拖出后需要设置的属性为:
pageSetupDialog1的Documen