Winform 打印报表 (从网上看到的代码,感觉不错,上传以做备忘) w inform 打印原理.. 1.先在画布上面画好表格 2.然后传入要打印的数据 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing.Printing; using System.Drawing; namespace Etaocn.Util { public class Printer { private DataGridView dataview; private PrintDocument printDoc; //打印有效区域的宽度 int width; int height; int columns; double Rate; bool hasMorePage = false; int currRow = 0; int rowHeight = 20; //打印页数 int PageNumber; //当前打印页的行数 int pageSize = 20; //当前打印的页码 int PageIndex; int AreaHeight; private int PageWidth; //打印纸的宽度 private int PageHeight; //打印纸的高度 private int LeftMargin; //有效打印区距离打印纸的左边大小 private int TopMargin;//有效打印区距离打印纸的上面大小 private int RightMargin;//有效打印区距离打印纸的右边大小 private int BottomMargin;//有效打印区距离打印纸的下边大小 int rows; private string[] footer; /**////
/// 构造函数 /// ///
要打印的DateGridView ///
PrintDocument 用于获取打印机的设置 public Printer(DataGridView dataview, PrintDocument printDoc,string[] footer) { this.footer = footer; this.dataview = dataview; this.printDoc = printDoc; PageIndex = 0; //获取打印数据的具体行数 this.rows = dataview.RowCount; this.columns = dataview.ColumnCount; //判断打印设置是否是横向打印 if (!printDoc.DefaultPageSettings.Landscape) { PageWidth = printDoc.DefaultPageSettings.PaperSize.Width; PageHeight = printDoc.DefaultPageSettings.PaperSize.Height; } else { PageHeight = printDoc.DefaultPageSettings.PaperSize.Width; PageWidth = printDoc.DefaultPageSettings.PaperSize.Height; } LeftMargin = printDoc.DefaultPageSettings.Margins.Left-50; TopMargin = printDoc.DefaultPageSettings....