C# 在PDF文档中创建表格的实现方法

表格能够直观的传达数据信息,使信息显得条理化,便于阅读同时也利于管理。那在PDF类型的文档中如何来添加表格并且对表格进行格式化操作呢?使用常规方法直接在PDF中添加表格行不通,那我们可以在借助第三方组件的情况下来实现。本篇文章中将介绍如何正确使用组件Free Spire.PDF for .NET添加表格到PDF。该组件提供了两个类PdfTable和PdfGrid用于创建表格,在进行代码编辑前,需先安装,添加Spire.PDF. dll到项目程序集中,同时添加到命名空间。下面是两种方法来添加表格的全部代码,供参考。

两种类用于创建表格的异同:


PdfTable


PdfGrid



无API支持,可通过事件设置


可直接通过API设置



可直接通过API设置(StringFormat)


可直接通过API设置(StringFormat)


单元格


无API支持,可通过事件设置


可直接通过API设置


单元格纵向合并


不支持


可直接通过API设置


单元格横向合并


无API支持,可通过事件设置


可直接通过API设置


嵌套表格


无API支持,可通过事件设置


可直接通过API设置


事件


BeginCellLayout, BeginPageLayout, BeginRowLayout, EndCellLayout, EndPageLayout, EndRowLayout


BeginPageLayout, EndPageLayout

一、通过PdfTable类来创建表格

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Tables;
using Spire.Pdf.Graphics;
using System.Data;
namespace DrawTable1_PDF
{
 class Program
 {
  static void Main(string[] args)
  {
   //创建一个PdfDocument类对象并向文档新添加一页
   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.Columns.Add("所属月份");
   dataTable.Rows.Add(new string[] { "A", "00101", "35", "7月"});
   dataTable.Rows.Add(new string[] { "B", "00102", "56", "8月"});
   dataTable.Rows.Add(new string[] { "C", "00103", "25", "9月"});
   //填充数据到PDF表格
   table.DataSource = dataTable;
   //显示表头(默认不显示)
   table.Style.ShowHeader = true;
   //在BeginRowLayout事件处理方法中注册自定义事件
   table.BeginRowLayout += Table_BeginRowLayout;
   //将表格绘入PDF并指定位置和大小
   table.Draw(page, new RectangleF(0, 60, 200, 200));
   //保存到文档并预览
   doc.SaveToFile("PDF表格_1.pdf");
   System.Diagnostics.Process.Start("PDF表格_1.pdf");
  }
  //在自定义事件中设置行高
  private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args)
  {
   args.MinimalHeight = 10f;
  }
 }
}

运行程序生成文件(可在该项目文件下bin>Debug查看)

效果展示:

二、通过PdfGrid类来添加表格

using Spire.Pdf;
using System.Drawing;
using Spire.Pdf.Grid;
using Spire.Pdf.Graphics;
using Spire.Pdf.Tables;
namespace DrawTable_PDF
{
 class Program
 {
  static void Main(string[] args)
  {
   //创建一个PdfDocument类对象,并新添加一页到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);
   //添加一个5行6列表格到新建的PDF文档
   PdfGridRow row1 = grid.Rows.Add();
   PdfGridRow row2 = grid.Rows.Add();
   PdfGridRow row3 = grid.Rows.Add();
   PdfGridRow row4 = grid.Rows.Add();
   PdfGridRow row5 = grid.Rows.Add();
   grid.Columns.Add(6);
   //设置列宽
   foreach (PdfGridColumn col in grid.Columns)
   {
    col.Width = 55f;
   }
   //写入数据
   row1.Cells[0].Value = "新入职员工基本信息";
   row2.Cells[0].Value = "入职时间";
   row2.Cells[1].Value = "姓名";
   row2.Cells[2].Value = "部门";
   row2.Cells[3].Value = "学历";
   row2.Cells[4].Value = "联系电话";
   row2.Cells[5].Value = "正式员工";
   row3.Cells[0].Value = "3月";
   row3.Cells[1].Value = "马超";
   row3.Cells[2].Value = "研发部";
   row3.Cells[3].Value = "硕士";
   row3.Cells[4].Value = "153****6543";
   row3.Cells[5].Value = "是";
   row4.Cells[0].Value = "4月";
   row4.Cells[1].Value = "刘陵";
   row4.Cells[2].Value = "研发部";
   row4.Cells[3].Value = "本科";
   row4.Cells[4].Value = "176****5464";
   row4.Cells[5].Value = "是";
   row5.Cells[0].Value = "4月";
   row5.Cells[1].Value = "张丽";
   row5.Cells[2].Value = "研发部";
   row5.Cells[3].Value = "本科";
   row5.Cells[4].Value = "158****4103";
   row5.Cells[5].Value = "是";
   //水平和垂直方向合并单元格
   row1.Cells[0].ColumnSpan = 6;
   row4.Cells[0].RowSpan = 2;
   row3.Cells[2].RowSpan = 3;
   row4.Cells[3].RowSpan = 2;
   //设置单元格内文字对齐方式
   PdfTable table = new PdfTable();
   row1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
   row4.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Justify, PdfVerticalAlignment.Middle);
   row3.Cells[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Justify, PdfVerticalAlignment.Middle);
   row4.Cells[3].StringFormat = new PdfStringFormat(PdfTextAlignment.Justify, PdfVerticalAlignment.Middle);
   //设置单元格背景颜色
   row1.Cells[0].Style.BackgroundBrush = PdfBrushes.LightGreen;
   //设置表格边框颜色、粗细
   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, 40));
   //保存到文档
   doc.SaveToFile("PDF表格.pdf");
   System.Diagnostics.Process.Start("PDF表格.pdf");
  }
 }
}

效果展示:

总结

以上所述是小编给大家介绍的C# 在PDF文档中创建表格的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • C#使用iTextSharp从PDF文档获取内容的方法

    本文实例讲述了C#使用iTextSharp从PDF文档获取内容的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using iTex

  • C#代码实现PDF文档操作类

    本文纯干货,贴上PDF文档操作类C#代码,需要添加iTextSharp.dll引用才可以正常通过编译. 废话不多说了,直接给大家贴代码了. 代码如下: using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; namespace DotNet.Utilities { /// <summary> /// PDF文档操作类 /// </summary> //---------------------------

  • word ppt excel文档转换成pdf的C#实现代码

    复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; using Word = Microsoft.Office.Interop.Word;using Excel = Micro

  • 使用c#在word文档中创建表格的方法详解

    复制代码 代码如下: public string CreateWordFile()        {            string message = "";            try            {                Object Nothing = System.Reflection.Missing.Value;                string name = "xiehuan.doc";               

  • C#编程读取文档Doc、Docx及Pdf内容的方法

    本文实例讲述了C#编程读取文档Doc.Docx及Pdf内容的方法.分享给大家供大家参考.具体分析如下: Doc文档:Microsoft Word 14.0 Object Library (GAC对象,调用前需要安装word.安装的word版本不同,COM的版本号也会不同) Docx文档:Microsoft Word 14.0 Object Library (GAC对象,调用前需要安装word.安装的word版本不同,COM的版本号也会不同) Pdf文档:PDFBox /* 作者:GhostBea

  • C# 在PDF文档中创建表格的实现方法

    表格能够直观的传达数据信息,使信息显得条理化,便于阅读同时也利于管理.那在PDF类型的文档中如何来添加表格并且对表格进行格式化操作呢?使用常规方法直接在PDF中添加表格行不通,那我们可以在借助第三方组件的情况下来实现.本篇文章中将介绍如何正确使用组件Free Spire.PDF for .NET添加表格到PDF.该组件提供了两个类PdfTable和PdfGrid用于创建表格,在进行代码编辑前,需先安装,添加Spire.PDF. dll到项目程序集中,同时添加到命名空间.下面是两种方法来添加表格的

  • 解决用Aspose.Words,在word文档中创建表格的实现方法

    代码如下所示: 复制代码 代码如下: //Open document and create Documentbuilder  Aspose.Words.Document doc = new Aspose.Words.Document("demo.doc");  DocumentBuilder builder = new DocumentBuilder(doc);  //Set table formating  //Set borders  builder.CellFormat.Bord

  • C#/VB.NET中从 PDF 文档中提取所有表格

    目录 前言 安装 从PDF文档中提取表格 前言 有时,我们可能需要从 PDF 文档中提取表格数据,例如,当PDF发票的表格中存储了一些有用的信息,需要提取数据以进行进一步分析时.在这篇文章中,我将介绍如何使用Spire.PDF for .NET 从 PDF 文档中提取所有表格数据. 安装 首先,我们需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加为 .NET 项目中的引用.可以从此链接下载 DLL 文件,也可以通过 NuGet 安装 DLL 文件. PM> Instal

  • C#实现在PDF文档中应用多种不同字体

    目录 引入dll 应用字体 C# VB.NET 绘制效果 引入dll 本次程序中引入的是Spire.Pdf.dll,引入方法如下: [方法1]通过NuGet安装. 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.PDF”,点击“安装”. 也可以将以下内容复制到PM控制台安装: Install-Package FreeSpire.PDF -Version 7.8.9 [方法2]手动安装. 可通过手动下载Fre

  • C#编程实现Excel文档中搜索文本内容的方法及思路

    打开Excel的VBA帮助,查看Excel的对象模型,很容易找到完成这个功能需要的几个集合和对象:Application.Workbooks.Workbook.Worksheets还有Worksheet和Range.Application创建Excel应用,Workbooks打开Excel文档,Workbook获得Excel文档工作薄,Worksheets操作工作表集合,Worksheet获得单个工作表. 搜索的思路对应上述集合和对象,可以这样表述:要搜索的文本可能存在Excel文档当中的某个工

  • C#获取Word文档中所有表格的实现代码分享

    今天从数据库生成了一份数据字典,但是没有备注,所以需要程序把表格都读出来.用到了下面的代码,亲测可用~~ object oFileName = @"F:\数据库.docx"; object oReadOnly = false ; object oMissing = System.Reflection.Missing.Value; Microsoft.Office.Interop.Word._Application oWord; Microsoft.Office.Interop.Word

  • C#对Word文档的创建、插入表格、设置样式等操作实例

    using Word; 下面的例子中包括C#对Word文档的创建.插入表格.设置样式等操作: (例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法) public string CreateWordFile(string CheckedInfo) ...{ string message = ""; try ...{ Object Nothing = System.Reflection.Missing.Value; Directory.CreateDirect

  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页

    比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本文中我们将要使用DinkToPDF来处理我们在.NET Core Web 程序中进行构建PDF文档!就现在我们不多说,直接开始有趣的部分. 前言# 您可以通过创建PDF文档在我的仓库中,获取源代码,欢迎给个免费的Star... 现在我们创建一个.NET Core 3.0 项目,至于是mvc.Api.

  • 基于PHP与XML的PDF文档生成技术

    摘要 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. AbstractThis article introduced the fundamentls of PHP,XML and PDF and their application situation at present,expect

随机推荐