原文: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. Treflection02_getMethods()_getMethod()

    1. package reflectionZ; import java.lang.reflect.Constructor; import java.lang.reflect.Method; impor ...

  2. Spring scope解惑

    在2.0之前只有两种singleton和prototype(网上说的,没去验证),后面增加了session.request.global session三种专门用于web应用程序上下文的Bean Si ...

  3. c# 使用事务

    EcAttendanceMatterBLL.OpenTransaction(); DbTransaction Tran = EcAttendanceMatterBLL.Transaction; _wf ...

  4. scrapy的简单使用以及相关设置属性的介绍

    0. 楔子(一个最简单的案例) 1.scrapy.Spider scrapy.spiders.Spider name allowed_domains start_urls custom_setting ...

  5. 条款24:如果所有的参数都需要类型转换,那么请为此采用non-member函数

    首先还是下面这个class; class Rational{ public: Rational(, ); int numurator() const; int denominator() const; ...

  6. Android studio 导入ApiDemo

    1.import 项目,sdk目录:sdk\samples\android-21\legacy\ApiDemos,import时一直下一步就ok了. 2.Error:Error: The file n ...

  7. c# unicode 编码 中文转换 已测试(转)

    中文传参时因为编码不同经常凌乱风中,故传前编成unicode码来过度是一个不错的解决方法 /// <summary> /// 中文转unicode        /// </summ ...

  8. HTTPS 性能优化 -- 基于协议和配置的优化

    基于协议和配置的优化 1 前言 上文讲到 HTTPS 对用户访问速度的影响. 本文就为大家介绍 HTTPS 在访问速度,计算性能,安全等方面基于协议和配置的优化. 2 HTTPS 访问速度优化 2.1 ...

  9. H264的nalu type有哪些?

    1.forbidden_bit:                             禁止位,初始为0,当网络发现NAL单元有比特错误时可设置该比特为1,以便接收方纠错或丢掉该单元. 2.nal_ ...

  10. dojo chart生成函数

    写了一个函数,就是通过传递参数,生成图表,代码如下: /** * created by LZUGIS * @param container * @param type * @param data * ...