原文:http://www.cnblogs.com/LifelongLearning/archive/2011/05/16/2048116.html

表格是我们在制作文档时,经常使用的一个元素。对布局的控制非常精确。在ITextSharp中表格对象是下面两个元素:

PdfTable,PdfCell

下面从ITextSharp In Action截取一段代码:

从代码中,可以看出,PdfTable的构造函数,传入一个列数为参数,表示这个表格有多少列,往表格中加入PdfCell,如果加入的单元格超过一行,自动会进行换行。单元格中有一个setColspan函数(注:C#版本中,是属性Colspan),用于设置一个单元格跨多列。同样,如果要跨越多行,也有一个属性(C#)RolSpan,上面的演示代码执行结果如下:

PdfTable对象有一个设置表格区域和每列宽度的函数,如下:

public void SetTotalWidth(float[] columnWidth);            public void SetWidthPercentage(float[] columnWidth, Rectangle pageSize);

属性:HorizontalAlignment 设置表格的对齐方式

HeaderRows 表示第几行作为表格头

FooterRows  表示第几行作为表格尾

SplitLate      表示单元格是否跨页显示

SplitRows     表示行是否跨页显示

示例代码如下:

   1: public class PdfPTableDemo : TestBase 

   2:     { 

   3:         protected override void Opening(Document document, PdfWriter writer) 

   4:         { 

   5:             document.SetPageSize(PageSize.A4.Rotate()); 

   6:             base.Opening(document, writer); 

   7:         } 

   8:         protected override void WriteDocument(Document document, PdfWriter writer) 

   9:         { 

  10:             PdfPTable table = CreateTable(); 

  11:             //table.WidthPercentage = 80;//设置表格占的宽度,百分比 

  12:             //table.TotalWidth = 200;//设置表格占的宽度,单位点数 

  13:             //table.SetTotalWidth(); 

  14:             //table.SetWidthPercentage(); 

  15:             table.HorizontalAlignment = Element.ALIGN_LEFT; 

  16:             document.Add(table);

  17:  

  18:             table = CreateTable(); 

  19:             table.HorizontalAlignment = Element.ALIGN_RIGHT; 

  20:             table.SpacingBefore = (5); 

  21:             table.SpacingAfter = (5); 

  22:             Rectangle rect = new Rectangle(523, 770); 

  23:             table.SetWidthPercentage( 

  24:               new float[] { 50, 25, 25 }, rect); 

  25:             document.Add(table); 

  26:             table = CreateTable(); 

  27:             table.HorizontalAlignment = Element.ALIGN_CENTER; 

  28:             table.SetTotalWidth(new float[] { 144, 72, 72 }); 

  29:             table.LockedWidth = (true); 

  30:             document.Add(table); 

  31:             table = CreateTable(); 

  32:             table.SpacingBefore = (15); 

  33:             table.SpacingAfter = (15); 

  34:             document.Add(table);

  35:  

  36:             table = new PdfPTable(3); 

  37:             PdfPCell cell 

  38:   = new PdfPCell(new Phrase("表头测试", Normal)); 

  39:             cell.BackgroundColor = (BaseColor.YELLOW); 

  40:             cell.HorizontalAlignment = (Element.ALIGN_CENTER); 

  41:             cell.Colspan = (7); 

  42:             table.AddCell(cell);

  43:  

  44:             cell 

  45:   = new PdfPCell(new Phrase("表尾测试", Normal)); 

  46:             cell.BackgroundColor = (BaseColor.YELLOW); 

  47:             cell.HorizontalAlignment = (Element.ALIGN_CENTER); 

  48:             cell.Colspan = (7); 

  49:             table.AddCell(cell);

  50:  

  51:             table.DefaultCell.BackgroundColor = (BaseColor.LIGHT_GRAY); 

  52:             for (int i = 0; i < 100; i++) 

  53:             { 

  54:                 table.AddCell("Location"); 

  55:                 table.AddCell("Time"); 

  56:                 table.AddCell("Run Length"); 

  57:                 table.AddCell("Title"); 

  58:                 table.AddCell("Year"); 

  59:                 table.AddCell("Directors"); 

  60:                 table.AddCell("Countries"); 

  61:             } 

  62:             table.DefaultCell.BackgroundColor = (null); 

  63:             table.HeaderRows = (2); 

  64:             table.FooterRows = (1); 

  65:             document.Add(table);

  66:  

  67:         }

  68:  

  69:         private PdfPTable CreateTable() 

  70:         { 

  71:             PdfPTable table = new PdfPTable(3); 

  72:             table.TableEvent = new AlternatingBackground(); 

  73:             //table.WidthPercentage = 80;//设置表格占的宽度,百分比 

  74:             //table.TotalWidth = 200;//设置表格占的宽度,单位点数 

  75:             //table.SetTotalWidth(); 

  76:             //table.SetWidthPercentage(); 

  77:             PdfPCell cell; 

  78:             cell = new PdfPCell(new Phrase("Cell with colspan 3")); 

  79:             cell.Colspan = (3); 

  80:             table.AddCell(cell); 

  81:             cell = new PdfPCell(new Phrase("Cell with rowspan 2")); 

  82:             cell.Rowspan = (2); 

  83:             table.AddCell(cell); 

  84:             table.AddCell("row 1; cell 1"); 

  85:             table.AddCell("row 1; cell 2"); 

  86:             table.AddCell("row 2; cell 1"); 

  87:             table.AddCell("row 2; cell 2");

  88:  

  89:             return table; 

  90:         } 

  91:     }

  92:  

补充一点:在设置单元格的对齐方式时,应该选设置对齐方式,再来添加内容。

   1: cell = new PdfPCell(new Chunk("中国人民",Normal));

   2:                 cell.UseAscender = (true);

   3:                 cell.UseDescender = (true);

   4:                 cell.VerticalAlignment = Element.ALIGN_MIDDLE;

   5:                 cell.HorizontalAlignment = Element.ALIGN_CENTER;

   7:                 table.AddCell(cell);

ITextSharp Table使用 (转)的更多相关文章

  1. 在Asp.Net中操作PDF – iTextSharp - 使用表格

    使用Asp.Net生成PDF最常用的元素应该是表格,表格可以帮助比如订单或者发票类型的文档更加格式化和美观.本篇文章并不会深入探讨表格,仅仅是提供一个使用iTextSharp生成表格的方法介绍 使用i ...

  2. 新版 itextsharp pdf code

    using System; using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; namespace iTextShar ...

  3. 用itextsharp打印pdf示例

    学习了用itextsharp输出PDF文档,支持用XML定义文档,可定义多个数据源,简单的表达式,用于项目中效果还不错,其中PdfPageEvent类由包大人提供. 示例程序定义了一个简单的xml文件 ...

  4. iTextSharp生成pdf的一个简单例子

    效果图: 参考:http://www.cnblogs.com/CareySon/archive/2011/11/09/2243496.html http://www.cnblogs.com/julyl ...

  5. [ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题)

    原文:[ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题) [ASP.net MVC] 将HTML转成PDF档案 ...

  6. 如何使用ITEXTSHARP将HTML代码字符串写进PDF

    原文 如何使用ITEXTSHARP将HTML代码字符串写进PDF itextsharp包括一个简单的类,可以用来根据html代码或字符串创建pdf文件.使用此类,你可以使用短短几行代码,就将 HTML ...

  7. iTextSharp快速使用指南

    前言 最近公司一直使用iText开发PDF报表,使用一段时间之后发现iText这个类库虽然是庞大无比,但作为程序猿我们不需要知道所有的类和方法,我们只需要知道如何使用即可. 所以这篇文章就是告诉大家如 ...

  8. iTextSharp 使用详解(转)

    PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下 ...

  9. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

随机推荐

  1. Nginx的长链接

    网站使用程序discuz3访问都正常,只有用户登录存在异常,具体就是:用户登陆后会马上显示未登录,然后刷新一下又变成了登录中 这个问题的原因显然是由于session导致,后台有多个web机器,当用户登 ...

  2. angularjs分页组件

    这是我第一次写博客,激动,首先,我也是个菜鸟,分享一下自己写的服务器端分页的代码,自己一步一步写的,其中也有参考别人的代码.技术比较渣,先这样了. // ====== 2019-1-3 ======/ ...

  3. 公共域名服务DNS 114.114.114.114和8.8.8.8

    一.两者的联系 114.114.114.114和8.8.8.8,这两个IP地址都属于公共域名解析服务DNS其中的一部分,而且由于不是用于商业用途的,这两个DNS都很纯净,不用担心因ISP运营商导致的D ...

  4. SQLite在C#中的使用

    SQLite是一款轻型的数据库,在一些数据量不太大的程序中,它暂用的资源非常低.支持很多操作系统和许多语言,所以还是很方便的.在C#中,要用的话可以通过网站来下载或者在VS中通过NuGet来下载.这个 ...

  5. iptables(二)iptables实际操作之规则查询

    如果你是一个新手,在阅读如下文章时,请坚持读到最后,读的过程中可能会有障碍,但是在读完以后,你会发现你已经明白了. 在进行iptables实验时,请务必在测试机上进行. 之前在iptables的概念中 ...

  6. 006——VUE中的内容与属性中使用javascript表达式的方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. ./startup.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录 解决办法

    这是因为Linux上 的catalina.sh文件格式给修改了,看不出来,这样就必须通过vim编辑下,变为正常的格式,在catalina.sh的命令模式下输入  ( :set ff=unix ),接着 ...

  8. React typescript issue

    多个输入框发生变化时,setState: this.setState({[e.target.name]: e.target.value} as componentState)

  9. C#调用EasyPusher推送到EasyDarwin实现视频流中转

    本文转自:http://www.cnblogs.com/kangkey/p/6772863.html 最近在公司项目中,遇到需要将内网的监控视频信息,在外网进行查看,最终通过查阅资料,发现EasyDa ...

  10. matlab将矩阵写入文件

    % %% date: 5/5/2017 % %% Author: Congbo Ma, Hu Wang % % write matrix to file function wrt_mat_to_fil ...