龙空技术网

PDF管理控件Spire.PDF教程:如何创建PDF表格并添加图片到表格

慧都科技 76

前言:

如今各位老铁们对“netdatatableadd”大概比较关注,你们都需要了解一些“netdatatableadd”的相关文章。那么小编也在网络上网罗了一些有关“netdatatableadd””的相关文章,希望朋友们能喜欢,同学们一起来了解一下吧!

Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。Spire.PDF的PDF API拥有丰富的功能,如安全设置(包括数字签名)、PDF文本/附件/图片提取、PDF文件合并/拆分、元数据更新、章节和段落优化、图形/图像描绘和插入、表格创建和处理、数据导入等等。>>下载Spire.PDF最新试用版

C# 创建 PDF 表格

通过 PdfTable 类创建表格

static void Main(string[] args){ //创建一个PDF文档 PdfDocument doc = new PdfDocument(); //添加一页 PdfPageBase page = doc.Pages.Add(); //创建一个PdfTable对象 PdfTable table = new PdfTable(); //设置字体 table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true); table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true); //创建一个DataTable并写入数据 DataTable dataTable = new DataTable(); dataTable.Columns.Add("名字"); dataTable.Columns.Add("年龄"); dataTable.Columns.Add("性别"); dataTable.Rows.Add(new string[] { "张红", "22", "女" }); dataTable.Rows.Add(new string[] { "王东", "25", "男" }); //填充数据到PDF表格 table.DataSource = dataTable; //显示表头(默认不显示) table.Style.ShowHeader = true; //在BeginRowLayout事件处理方法中注册自定义事件 table.BeginRowLayout += Table_BeginRowLayout; //将表格绘入PDF并指定位置和大小 table.Draw(page, new RectangleF(0, 20, 200, 90)); //保存到文档 doc.SaveToFile("PDF表格_1.pdf");}//在自定义事件中设置行高private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args){ args.MinimalHeight = 20f;}

通过 PdfGrid 创建表格——创建一个简单的表格

//创建一个PDF文档PdfDocument doc = new PdfDocument();//添加一页PdfPageBase page = doc.Pages.Add();//创建一个PdfGrid对象PdfGrid grid = new PdfGrid();//设置单元格边距grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);//添加2行4列PdfGridRow row1 = grid.Rows.Add();PdfGridRow row2 = grid.Rows.Add();grid.Columns.Add(4);//设置列宽foreach (PdfGridColumn col in grid.Columns){ col.Width = 60f;}//写入数据for (int i = 0; i < grid.Columns.Count; i++){ row1.Cells[i].Value = String.Format("col{0}", i + 1); row2.Cells[i].Value = String.Format("{0}", i + 1);}//将表格绘入文档grid.Draw(page, new PointF(0, 20));//保存到文档doc.SaveToFile("PDF表格_2.pdf");

通过 PdfGrid 创建表格——合并单元格,设置背景色和文字对齐方式

//创建PDF文档PdfDocument doc = new PdfDocument();//添加一页PdfPageBase page = doc.Pages.Add();//创建一个PdfGrid对象PdfGrid grid = new PdfGrid();//设置单元格边距grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);//设置表格默认字体grid.Style.Font= new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true);//添加4行4列PdfGridRow row1 = grid.Rows.Add();PdfGridRow row2 = grid.Rows.Add();PdfGridRow row3 = grid.Rows.Add();PdfGridRow row4 = grid.Rows.Add();grid.Columns.Add(4);//设置列宽foreach (PdfGridColumn col in grid.Columns){ col.Width = 60f;}//写入数据row1.Cells[0].Value = "订单及支付情况";row2.Cells[0].Value = "订单号";row2.Cells[1].Value = "日期";row2.Cells[2].Value = "客户";row2.Cells[3].Value = "是否付款";row3.Cells[0].Value = "00223";row3.Cells[1].Value = "2016/06/02";row3.Cells[2].Value = "阳光地产";row3.Cells[3].Value = "是";row4.Cells[0].Value = "00224";row4.Cells[1].Value = "2016/06/03";row4.Cells[3].Value = "否";//水平和垂直合并单元格row1.Cells[0].ColumnSpan = 4;row3.Cells[2].RowSpan = 2;//设置单元格内文字对齐方式row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center);row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Justify, PdfVerticalAlignment.Middle);//设置单元格背景颜色row1.Cells[0].Style.BackgroundBrush = PdfBrushes.Gray;row3.Cells[3].Style.BackgroundBrush = PdfBrushes.Green;row4.Cells[3].Style.BackgroundBrush = PdfBrushes.MediumVioletRed;//设置边框颜色、粗细PdfBorders borders = new PdfBorders();borders.All = new PdfPen(Color.Black, 0.1f);foreach (PdfGridRow pgr in grid.Rows){ foreach (PdfGridCell pgc in pgr.Cells) { pgc.Style.Borders = borders; }}//在指定为绘入表格grid.Draw(page, new PointF(0, 20));//保存到文档doc.SaveToFile("PDF表格_3.pdf");

C# 添加图片和嵌套表格到 PDF 表格的单元格

//创建PDF文档PdfDocument pdf = new PdfDocument();//添加一个页面PdfPageBase page = pdf.Pages.Add();//创建一个PDF表格PdfGrid grid = new PdfGrid();//添加两行 PdfGridRow row1 = grid.Rows.Add();PdfGridRow row2 = grid.Rows.Add();//设置表格的单元格内容和边框之间的上边距和下边距grid.Style.CellPadding.Top = 5f;grid.Style.CellPadding.Bottom = 5f;//添加两列grid.Columns.Add(2);//设置列宽grid.Columns[0].Width = 120f;grid.Columns[1].Width = 120f;//创建另一个需要嵌套的表格PdfGrid embedGrid = new PdfGrid();//添加一行PdfGridRow newRow = embedGrid.Rows.Add();//添加两列embedGrid.Columns.Add(2);//设置列宽embedGrid.Columns[0].Width = 50f;embedGrid.Columns[1].Width = 50f;SizeF imageSize = new SizeF(50, 50);//加载图片PdfGridCellContentList contentList = new PdfGridCellContentList();PdfGridCellContent content = new PdfGridCellContent();content.Image = PdfImage.FromFile(@"Doc.png");content.ImageSize = imageSize;contentList.List.Add(content);PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 11f), true);//设置嵌套表格的单元格的值和格式newRow.Cells[0].Value = "Spire.Doc";newRow.Cells[0].StringFormat = stringFormat;newRow.Cells[1].Value = contentList; //将图片添加到嵌套表格的第二个单元格newRow.Cells[1].StringFormat = stringFormat;//设置第一个表格的单元格的值和格式row1.Cells[0].Value = "客户姓名"; row1.Cells[0].StringFormat = stringFormat;row1.Cells[0].Style.Font = font;row1.Cells[0].Style.BackgroundBrush = PdfBrushes.ForestGreen;row1.Cells[1].Value = "产品";row1.Cells[1].StringFormat = stringFormat;row1.Cells[1].Style.Font = font;row1.Cells[1].Style.BackgroundBrush = PdfBrushes.ForestGreen;row2.Cells[0].Value = "肖恩";row2.Cells[0].StringFormat = stringFormat;row2.Cells[0].Style.Font = font;row2.Cells[1].Value = embedGrid; //将嵌套表格添加到第一个表格的第二行第二个单元格row2.Cells[1].StringFormat = stringFormat; //将第一个表格画到页面上grid.Draw(page, new PointF(0f, 30f));//保存文档pdf.SaveToFile("嵌套表格和图片.pdf");

C# 删除 PDF Grid 的行和列

//创建PdfDocument实例PdfDocument doc = new PdfDocument();//添加一页PdfPageBase page = doc.Pages.Add();//创建PDF gridPdfGrid grid = new PdfGrid();//设置单元格内容和边框之间的距离grid.Style.CellPadding = new PdfPaddings(3, 3, 1, 1);//添加3行和4列PdfGridRow row1 = grid.Rows.Add();PdfGridRow row2 = grid.Rows.Add();PdfGridRow row3 = grid.Rows.Add();grid.Columns.Add(4);//设置列宽foreach (PdfGridColumn column in grid.Columns){ column.Width = 60f;}//写入数据到单元格for (int i = 0; i < grid.Columns.Count; i++){ row1.Cells[i].Value = String.Format("column{0}", i + 1); row2.Cells[i].Value = "a"; row3.Cells[i].Value = "b";}//删除第二行grid.Rows.RemoveAt(1);//删除第二列grid.Columns.RemoveAt(1);//在页面的指定位置绘制gridgrid.Draw(page, new PointF(0, 20));//保存文件doc.SaveToFile("Output.pdf");

如果你有任何问题或意见,可在下方评论区留言,点击下方“了解更多”免费下载Spire.PDF最新版

标签: #netdatatableadd