没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:李显亮|2019-08-07 09:56:53.137|阅读 988 次
概述:Spire.PDF的PDF API拥有丰富的功能,如安全设置(包括数字签名)、PDF文本/附件/图片提取、PDF文件合并/拆分、元数据更新、章节和段落优化、图形/图像描绘和插入、表格创建和处理、数据导入等等。本文将介绍如何创建PDF表格并添加图片到表格。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
更多资源查看:Spire.XLS工作表教程 | Spire.Doc系列教程 | Spire.PDF系列教程
Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。Spire.PDF的PDF API拥有丰富的功能,如安全设置(包括数字签名)、PDF文本/附件/图片提取、PDF文件合并/拆分、元数据更新、章节和段落优化、图形/图像描绘和插入、表格创建和处理、数据导入等等。>>下载Spire.PDF最新试用版
Spire.PDF提供了两种类PdfTable和PdfGrid用于创建PDF表格,二者在对表格进行格式化操作时存在以下差别:
PdfTable | PdfGrid | |
---|---|---|
格式设置 | ||
行 | 无API支持,可以通过事件设置 | 可直接通过API设置 |
列 | 可直接通过API设置(StringFormat) | 可直接通过API设置(StringFormat) |
单元格 | 无API支持,可以通过事件设置 | 可直接通过API设置 |
其他 | ||
单元格纵向合并 | 不支持 | 可直接通过API设置 |
单元格横向合并 | 无API支持,可以通过事件设置 | 可直接通过API设置 |
嵌套表格 | 无API支持,可以通过事件设置 | 可直接通过API设置 |
事件 | BeginCellLayout, BeginPageLayout, BeginRowLayout, EndCellLayout, EndPageLayout, EndRowLayout | BeginPageLayout, EndPageLayout |
通过 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");
//创建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");
//创建PdfDocument实例 PdfDocument doc = new PdfDocument(); //添加一页 PdfPageBase page = doc.Pages.Add(); //创建PDF grid PdfGrid 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); //在页面的指定位置绘制grid grid.Draw(page, new PointF(0, 20)); //保存文件 doc.SaveToFile("Output.pdf");
如果你有任何问题或意见,可在下方评论区留言,点击资源列表查看更多教程资源~
*想要购买正版授权的朋友可以咨询在线客服哦~
扫描关注“慧聚IT”微信公众号,及时获取更多产品最新动态及最新资讯
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
本文将探索如何在DevExpress Blazor DxAiChat组件中启用函数调用,欢迎下载最新版组件体验!
从事建筑、工程、施工行业,将 DGN 文件转换为 DXF 格式都能确保与各种 CAD 应用程序兼容并无缝集成。Aspose.CAD 能够简化转换过程,提供强大的功能和灵活性。
本教程将为大家介绍如何使用MyEclipse创建一个WEB项目,欢迎下载最新版IDE体验!
本文主要介绍如何使用DevExpress WPF Grid控件实现节点(Nodes)的遍历,欢迎下载最新版组件体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号