介绍
使用c#实现操作的词打印?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
类PrintClass { #地区全局变量 私人DataGridView datagrid;//需要打印的数据来源 私人PageSetupDialog PageSetupDialog; 私人PrintPreviewDialog PrintPreviewDialog; int currentpageindex=0;//当前页的编了号 int rowcount=0;//数据的行数 公共PaperSize=new大小(827、1169);//答应的纸张大小 公共int headerheight=30;//标题高度 利润率利润=new利润率(50、60、50、80); 公共int celltopmargin=6;//单元格顶边距 公共int pagerowcount=7;//每页行数 公共int rowgap=23;//行高 公共int colgap=5;//每列间隔 公共字体headerfont=new字体(“Arial" 9 FontStyle.Bold);//列名标题字体 公共刷brushHeaderFont=new SolidBrush (Color.Black);//列名字体画刷 公共字体Cellfont=new字体(“Arial" 9);//单元格字体 公共bool isautopagerowcount=true;//是否自动计算行数 公共bool PageAspect=false;//打印的方向 公共静态bool PageScape=false;//打印方向 公共字符串paperName=string.Empty; # endregion #地区打印信息的初始化///& lt; summary>///打印信息的初始化///& lt;/summary>///& lt; param datagrid=癉ataGridView"在打印数据& lt;/param>///& lt;参数页=癷nt"在纸张大小& lt;/param>///& lt; param lendscape=癰ool"祝辞是否横向打印& lt;/param> 公共PrintClass (DataGridView datagrid,字符串paperName bool lendscape) { 这一点。datagrid=datagrid;//获取打印数据 这一点。paperName=paperName; PrintDocument PrintDocument=new PrintDocument();//实例化PrintDocument类 printpreviewdialog=new printpreviewdialog();//实例化printpreviewdialog类 printpreviewdialog。文档=printdocument;//获取预览文档的信息 printpreviewdialog。FormBorderStyle=FormBorderStyle.Fixed3D;//设置窗体的边框样式//横向打印的设置 如果(! string.IsNullOrEmpty (paperName)) { 如果(lendscape==true) { printdocument.DefaultPageSettings。景观=lendscape;//横向打印 } 其他的 { printdocument.DefaultPageSettings。景观=lendscape;//纵向打印 } } pagesetupdialog=new pagesetupdialog();//实例化pagesetupdialog类 pagesetupdialog。文档=printdocument;//获取当前页的设置 printdocument。新PrintPageEventHandler PrintPage +=(this.printdocument_printpage);//事件的重载 } # endregion #区域页的打印事件///& lt; summary>///页的打印事件(主要用于绘制打印报表)///& lt;/summary> 私人空间printdocument_printpage(对象发送方,System.Drawing.Printing。PrintPageEventArgs e) { 如果(this.isautopagerowcount)//自动计算页的行数 { 双countHeight=e.PageBounds。——this.margins高度。——this.headerfont。这个高度。headerheight - this.margins.Bottom; pagerowcount=(int)数学。天花板(countHeight/this.rowgap);//获取每页的行数 } int pagecount=(int) (rowcount/pagerowcount);//获取打印多少页 pagesetupdialog。AllowOrientation=true;//启动打印页面对话框的方向部分 int colcount=0;//记录数据的列数 int y=margins.Top;//获取表格的顶边距 字符串cellvalue=https://www.yisu.com/zixun/";//记录文本信息(单元格的文本信息) int startrow=currentpageindex * pagerowcount;//设置打印的初始页数 int endrow=startrow +。pagerowcount0)//如果列的宽大于0 { cwidth +=datagrid.Columns [j]。宽度+ colgap;//累加每列的宽度 } } y +=rowgap;//设置表格的上边线的位置//设置标题栏中的文字 for (int j=0;j 0)//如果列的宽度大于0 { cellvalue=datagrid.Columns [j] .HeaderText;//获取列标题//绘制标题栏文字 e.Graphics。拉带(cellvalue headerfont brushHeaderFont x, y + celltopmargin);//绘制列标题 x +=colwidth + colgap;//横向,下一个单元格的位置 int nnp=y + currentpagerowcount * rowgap + this.headerheight;//下一行线的位置 } }//打印所有的行信息 for (int i=startrow;我 使用c#实现操作的词打印