使用c#实现操作的词打印

  介绍

使用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 +。pagerowcount  0)//如果列的宽大于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#实现操作的词打印