原文: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. scala学习手记14 - 单例对象

    java中的单例模式都很熟悉了:简单地说就是一个类只能有一个实例.在scala中创建单例对象非常简单,创建类时使用object关键字替换class即可.因为单例类无法初始化,所以不能向它的主构造函数传 ...

  2. scala学习手记10 - 访问修饰符

    scala的访问修饰符有如下几个特性: 如果不指定访问修饰符,scala默认为public: 较之Java,scala对protected的定义更加严格: scala可以对可见性进行细粒度的控制. s ...

  3. java中HashMap、HashTable、TreeMap的区别总结【表格对比清楚明了】

      底层 有序否 键值对能否为Null 遍历 线程安全 哈希Code Hashmap 数组+链表 无序 都可null iterator 不安全 内部hash方法 Hashtable 数组+链表 无序 ...

  4. tensorflow笔记:模型的保存与训练过程可视化

    tensorflow笔记系列: (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 ...

  5. kindeditor上传本地图片实例

    所需插件:kindeditor下载   密码: 5ry4 jsp文件: <script type="text/javascript" language="javas ...

  6. [转载]java在线比较两个word文件

    一.项目背景 开发文档管理系统或OA办公系统的时候,实现在线处理word文档的功能比较容易,但是也经常会有客户提出文档版本管理的需求,这就需要同时在线打开两个word文件,对比两个不同版本的word文 ...

  7. 【scala】apply和update

    我们在使用scala的时候经常会用到对象的apply方法和update方法. 虽然我们表面没有察觉,但是实际上两个方法都会遵循相关约定被调用. apply apply方法的约定:用括号传递给变量(对象 ...

  8. 一次完整的HTTP请求

    HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1:建立TCP连接,TCP的三次握手 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服 ...

  9. 前端之CSS续集

    CSS:语法形式上由选择器+以及一条或多条声明组成:选择器查找到指定的html标签后,使用css属性设置html标签的样式: 一.css 语法形式: 二.使用步骤   1.引入css规则 2.使用cs ...

  10. 【git】不同协议的路径

    https https://github.com/yesuuu/ganLearn.git ssh git@github.com:yesuuu/ganLearn.git git@idc:ganLearn ...