分享

免费DataGridView打印和.NET轻松打印控件

 Cloud书屋 2012-12-19

控件特色:
1、基本上完全按DataGridView控件的格式打印(如颜色、字体、宽度、对齐方式、列的显示顺序等),复选框列可以打印成复选框样式,图片列可以打印成图片,按钮列可以打印成按钮格式。当然,也可以根据需要,自动缩放列宽以适应纸张的宽度。
2、控件提供了普通、多栏、横向跨页、工资条等4种形式打印DataGridView。多栏打印中,可以设置每页打印的栏数及栏间距的大小,横向跨页打印中,可以设置每页要重复打印的左边列数。
3、控件提供了主标题、子标题、页眉、页脚及表格页眉页脚等多种标题设置。
4、数据导出功能。控件可以将DatagridView的内容导出为Excel格式文件。
5、报表文件功能。可以打印内容保存为报表文件,以后用本控件打开该报表文件即可重现打印内容。
6、复杂表头(多行表头)DataGridView显示、打印与导出为Excel功能。
7、分组打印DataGridView功能。可以设置一个字段为分组字段,每组可以连续打印,也可以每组从新页面开始打印。
8、图片、文本、表格混合打印输出功能。
9、支持自定义纸张。

编写本控件的初衷:
打印是编程工作中的难点。在VS编程中,微软提供了PageSetupDialog、PrintDocument、PrintPreviewControl及水晶报表等组件来实现打印功能,但使用起来不是很方便。网上有很多DataGridView打印控件下载,要么功能太弱,功能强大的又要收费,而且使用比较麻烦。为此,本人花了一年多时间,编写了一个从菜鸟到高手都可以使用的打印控件。该控件完全用微软提供了PageSetupDialog、PrintDocument、PrintPreviewControl来实现。该控件前后发布了多个版本,现最新版为5.2版,大家可以到http://myyouping.download.csdn.net 免费网站下载,控件完全免费,没有任何使用功能限制。在这里,我要感谢为控件提供意见的各位朋友,正是因为有你们的关心,控件才有这么完美。


控件使用范围:
本打印控件最开始用VB2008编写,后来改为用VB2010编写,在.NET2.0及以上环境下都可以使用(VB、C#等都可以用的,VS2005、VS2008、VS2010都可以,只要是.NET2.0及以上环境 ,如果是.NET4.0,请使用下载包中的.NET4.0下专门编译的打印控件,功能与.NET2.0中的完全一样,只不过在.NET4.0环境下编译)
本控件包括7个组件:DGVPrint、VB2008Print、EaysReport、MulHeaderDataGridView、WebGVPrintServer、WebPrintServer、WebEasyReport,前4个组件适合窗口程序中打印,后2个组件适合网络中打印。


组件使用方法很简单,VS编程环境中的控件工具箱中单击右键,在弹出的快捷菜单中单击“选择项…”菜单,如弹出如下所示的选择工具箱项菜单

 

单击上面的“浏览…”按钮,找到并选择本打印控件文件“DotNetPrint.dll ”文件,单击“确定”按钮后,您可以在您的控件工具箱上看到新增加了几个组件,如下图所示的

在窗口程序中,后三个组件显示不可用状态,因为后三个组件只能在网页程序中使用。如果你是在开发网页程序,则会是前几个控件显示为不可用状态,后三个控件显示为可用状态。

 

一、DGVPrint组件简介


该组件是一个非可视化组件,专门用于打印单个DataGridView,可以普通表格、工资条、多栏及横向跨页方式打印DataGridView,并提供了主标题、子标题、页眉、页脚、字体等众多属性可以设置。将该组件从工具栏中拖到窗口中后,最简单的情况下,只需要一条语句即可:
假设组件名称为DGVPrint1,要打印的DataGridView名称为dgv1,则使用如下语句
DGVPrint1.Print(dgv1) 则会弹出如下的窗口
基本设置页参数如下,可以设置纸张、页边距、表格打印样式等参数

打印标题设置页参数如下

页眉页脚页设置参数如下

表格打印选项页设置如下

分组汇总及排序页设置如下

说明页如下

单击“开始打印预览”按钮后,就会弹出如下的打印预览窗口

如下对打印参数设置不满意,可以单击打印预览窗口工具栏中的“更改打印参数”按钮,就可以重新弹出前面的打印设置窗口重新进行参数设置了。

 

该组件使用释疑:
1、很多朋友问到打印结果中单元格内容与单元格左边的线太近影响美观。这个问题在控件4.5版及以上版本中都解决了,您只需要适当设置要打印的DataGridView的DefaultCellStyle.Padding属性的大小即可。(注意不是某一行或某一列的格式中的Padding属性,而是整个表格的DefaultCellStyle.Padding属性)。
2、可以不经过预览直接打印到打印机吗?当然可以的,只要将控件的isimmediateprint属性设置为true,将isimmediateprintShowPrintDialog设置为false(如果设置为true,则会先弹出打印机选择窗口),然后用DGVPrint1.Print(dgv1,false)即可
3、可以完全按DataGridView的列宽及行高大小进行打印吗?当然是可以的,但要将控件的这几个属性的值都设置为false,具体是:AutoFormat、AutoResizeRowHeight、ZoomToPaperWidth。这样设置后,DataGridView打印出来的大小就是实际显示的大小。

4、不少朋友说打印DataGridView内容时没法折行打印,其实控件是可以折行打印单元格的内容的,前提是您要将DataGridView设置为允许折行显示,控件就会折行打印了(当然,如果不允许控件自动调整表格大小的话,您还要设置好表格的行高)。
二、VB2008Print组件


该组件为可视化组件。该组件名称为VB2008Print,但大家不要误解,该组件在C#下一样可用的。由于我最开始是用VB2008在编写这个打印控件,故将该组件命名为VB2008Print。后来想重新命名,但考虑到组件前后的兼容性,一直没有更名,请大家不要被名称误解了。
该组件是一个通用的组件,也是一个基础组件,可以混合打印一个或多个DataGridView及文本、图片等。DGVPrint、EasyReport、WebGVPrintSever等组件最终打印预览及打印都是通过该组件来实现的。该组件提供了DrawText、DrawImage、DrawCell、DrawCellImage、DrawLing、DrawArc、DrawBar、PrintDGV、PrintDGV、PrintDGVCols、PrintDGVgzt、PrintDGVPages等多个打印文本、单元、图片、DataGridView的函数,每个函数提供了数个重载函数,使用时会自动提示参数说明。
该组件的使用较为复杂,灵活使用该组件可以打印各种形式的表格、文本及图片等。我的支票套打程序就是用该打印组件来实现的,大家可以到http://myyouping.download.csdn.net 免费。
有关该组件及其他组件的使用,在此不再详细介绍,在下载的文件中,有详细的帮助文件及演示程序。
如有任何疑问,可与我联系:
QQ:4797815022
邮箱:myyouping@139.com

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多