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

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


C# 创建 PDF 表格

Spire.PDF提供了两种类PdfTable和PdfGrid用于创建PDF表格,二者在对表格进行格式化操作时存在以下差别:

 

 PdfTablePdfGrid
格式设置
无API支持,可以通过事件设置可直接通过API设置
可直接通过API设置(StringFormat)可直接通过API设置(StringFormat)
单元格无API支持,可以通过事件设置可直接通过API设置
其他
单元格纵向合并不支持可直接通过API设置
单元格横向合并无API支持,可以通过事件设置可直接通过API设置
嵌套表格无API支持,可以通过事件设置可直接通过API设置
事件BeginCellLayout, BeginPageLayout, BeginRowLayout, EndCellLayout, EndPageLayout, EndRowLayoutBeginPageLayout, 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;
}

PDF管理控件Spire.PDF使用教程:如何创建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);

//添加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");

PDF管理控件Spire.PDF使用教程:如何创建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管理控件Spire.PDF使用教程:如何创建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");

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

 
C# 删除 PDF Grid 的行和列

 

//创建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");

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

 

如果你有任何问题或意见,可在下方评论区留言,点击资源列表查看更多教程资源~

转载于:https://my.oschina.net/u/4087915/blog/3084736

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
免费Spire.PDF for .NET 是一款由e-iceblue公司开发的专业性的PDF文档创建组件。它能够使用户在不用Adobe Acrobat和其他外部控件的情况下,运用.NET 应用程序阅读,编写和操纵PDF 文档。Spire.PDF for .NET不仅可以运用在服端比如:ASP.NET 或者其他环境,还可以应用在Windows Forms 应用程序中。Spire.PDF for .NET 适合应用于所有常见的坏境中,比如:创建好的PDF文档可以存到磁盘中, 还可以在Windows Forms应用程序,ASP.NET 应用程序客户端浏览器中保存为数据流。 Spire.PDF for .NET 功能丰富。 除了基本的功能比如:绘制多种图形,图片创建窗体字段,插入页眉页脚,输入数据表,自动对大型表格进行分页外,Spire.PDF for .NET还支持PDF数字签名,将HTML转换成PDF格式,提取PDF文档中的文本信息和图片,存为文本格式和各种图片格式,甚至可以将PDF中的附件提取出来。 主要功能 支持嵌入式字体,Truetype 字体和CJK字体。 支持绘图。比如:矩形,环形,弧形,椭圆形,也可以自定笔刷将其填充。 可以将图片从数据流, 磁盘文件中载入到PDF 文档中。 在PDF 文档中既可以绘制梯状图形和矢量图像,还支持掩模和水印图像。 可以在PDF 文档中载入数据表。可以设置表中的行和列的格式,还可以在表内加入图形元素。 自动对PDF 中的大型表格进行分页。 创建窗体字段。比如在PDF 文档中创建按钮,文本框,列表框,复选框等等。 在PDF 中插入页眉页脚。 通过设置所有者密码和用户密码来加密PDF文档。 通过作者的签名来保护PDF文档。 读取当前PDF文档的表格并且填充表格。 HTML网页在转换到PDF文档时会拆分为多个大型页面,这些页面可以原原本本的展现在PDF文档中,而且在PDF文档的分页处没有任何文字的截断。用户还可以将这些网页在不需要临时文件的情况下,直接转换为数据流来创建PDF文档。
### 回答1: spire.pdf评估警告:该文档是csdn。 spire.pdf是一种用于操作PDF文档的软件工具。在评估(试用)版本中,它可能会显示警告信息,以提醒用户该文档是从csdn下载的。 csdn是一个中文技术社区和资源分享平台,用户可以在其网站上找到和下载各种技术文档、源代码等资料。通常,从csdn下载的文档可能会有一些限制或者必须遵守一些规范。 spire.pdf的评估版本可能会在用户打开csdn下载的PDF文档时显示警告信息,这是为了提醒用户确保他们遵守文档使用的相关规定。这个警告可能是为了防止滥用或者未经授权的使用。 用户应该注意并遵守spire.pdf的使用许可协议,以及csdn上可能存在的任何使用规则。这样可以确保在使用这些工具和资源时不会触犯法律或侵犯他人的权益。 综上所述,spire.pdf评估警告提醒用户所打开的文档来自csdn,建议用户仔细阅读和遵守相关的规定和规则,以保证合法合规地使用这些工具和文档。 ### 回答2: spire.pdf评估警告:该文档是csdn。 根据提供的信息,"spire.pdf evaluation warning: the document was csdn" 可能指的是在使用Spire.PDF软件时,遇到了一个来自CSDN文档的评估警告。 Spire.PDF是一个功能强大的PDF操作库,它可以帮助开发人员创建、读取、修改和转换PDF文件。它广泛应用于各种项目中。 然而,有些软件供应商在试用版本的软件中会添加评估警告,提醒用户购买完整版本以解锁全部功能。 在这种情况下,警告信息显示该PDF文档是来自CSDN(中国最大的IT技术社区)。 我们可以理解这个警告作为提醒,告诉用户这个文档可能是从CSDN下载或获取的,并且可能受到特定的评估限制,这意味着可能会有某些功能或操作无法正常使用。 为了获得完整功能,用户可以考虑购买Spire.PDF的正式版本或访问官方网站了解更多详情。 需要注意的是,上述内容只是对给出的信息进行解释,并非根据实际获得的评估警告内容。如果提供更多具体信息,将可以提供更准确的回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值