功能有限,暂时不能分页,有待进一步完善。 private void two(PrintPageEventArgs e, DataSet aa) ... { Font HeadFont = new Font("宋体", 18); Font BodyFont = new Font("宋体", 12); Graphics g = e.Graphics; Pen pen = new Pen(Color.Black, 1); Rectangle rect = new Rectangle(40, 30, 740, aa.Tables[0].Rows.Count * 30 + 130); g.DrawRectangle(pen, rect); g.DrawString(aa.DataSetName, HeadFont, new SolidBrush(Color.Black), 200, 50); g.DrawString("发往厂家:" + aa.Tables[0].TableName, BodyFont, new SolidBrush(Color.Black), 70, 90); g.DrawString("出厂日期:" + DateTime.Now.ToLongDateString(), BodyFont, new SolidBrush(Color.Black), 500, 90); rect = new Rectangle(60, 110, 700, 30); g.DrawRectangle(pen, rect); g.DrawString(aa.Tables[0].Columns[0].ColumnName, BodyFont, new SolidBrush(Color.Black), 70, 120); g.DrawLine(pen, 150, 110, 150, 140); g.DrawString(aa.Tables[0].Columns[1].ColumnName, BodyFont, new SolidBrush(Color.Black), 160, 120); g.DrawLine(pen, 300, 110, 300, 140); g.DrawString(aa.Tables[0].Columns[2].ColumnName, BodyFont, new SolidBrush(Color.Black), 310, 120); g.DrawLine(pen, 500, 110, 500, 140); g.DrawString(aa.Tables[0].Columns[3].ColumnName, BodyFont, new SolidBrush(Color.Black), 510, 120); for (int i = 0; i < aa.Tables[0].Rows.Count; i++) ...{ g.DrawLine(pen, 60, 110 + 30 * (i + 1), 60, 140 + 30 * (i + 1)); g.DrawString(aa.Tables[0].Rows[i][0].ToString(), BodyFont, new SolidBrush(Color.Black), 70, 120 + 30 * (i + 1)); g.DrawLine(pen, 150, 110 + 30 * (i + 1), 150, 140 + 30 * (i + 1)); g.DrawString(aa.Tables[0].Rows[i][1].ToString(), BodyFont, new SolidBrush(Color.Black), 160, 120 + 30 * (i + 1)); g.DrawLine(pen, 300, 110 + 30 * (i + 1), 300, 140 + 30 * (i + 1)); g.DrawString(aa.Tables[0].Rows[i][2].ToString(), BodyFont, new SolidBrush(Color.Black), 310, 120 + 30 * (i + 1)); g.DrawLine(pen, 500, 110 + 30 * (i + 1), 500, 140 + 30 * (i + 1)); g.DrawString(aa.Tables[0].Rows[i][3].ToString(), BodyFont, new SolidBrush(Color.Black), 510, 120 + 30 * (i + 1)); g.DrawLine(pen, 760, 110 + 30 * (i + 1), 760, 140 + 30 * (i + 1)); g.DrawLine(pen, 60, 140 + 30 * (i + 1), 760, 140 + 30 * (i + 1)); } } private DataSet CreateDate() ... { System.Data.DataTable dt = new System.Data.DataTable(); dt.TableName = "XXXXXXXXXX有限公司"; System.Data.DataRow dr; dt.Columns.Add(new System.Data.DataColumn("序号", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("人渣编号", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("人渣名称", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("永久性标识", typeof(System.String))); for (int i = 0; i < 30; i++) ...{ System.Random rd = new System.Random(Environment.TickCount * i); ; dr = dt.NewRow(); dr[0] = i.ToString().PadLeft(2, '0').ToString(); ; dr[1] = "3401S-010-A-" + i.ToString().PadLeft(2, '0').ToString(); dr[2] = "XXXXXXX人渣" + i.ToString().PadLeft(2, '0').ToString(); dr[3] = "0704030336022" + i.ToString().PadLeft(2,'0').ToString(); ; dt.Rows.Add(dr); } DataSet ds = new DataSet(); ds.DataSetName = "XXXXXXXXXXXXXXXXXXX人渣永久性标识附表"; ds.Tables.Add(dt); return ds; } private void printDocument1_PrintPage( object sender, PrintPageEventArgs e) ... { try ...{ two(e, CreateDate()); } catch (Exception Err) ...{ MessageBox.Show(Err.Message); } }