原文: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. angular 图片懒加载(延迟加载)

    github 原文 https://github.com/Treri/me-lazyload me-lazyload angular 的图像资源延迟加载指令 例子(Demo) 演示网站(Demo Si ...

  2. ToggleButton开关状态按钮控件

    ToggleButton开关状态按钮控件 一.简介 1. 2.ToggleButton类结构 父类是CompoundButton,引包的时候注意下 二.ToggleButton开关状态按钮控件使用方法 ...

  3. uva 10125 二分

    https://vjudge.net/problem/UVA-10125 和之前做过的一道a+b+c=X的问题类似,不过这个要求多了a+b+c=d-->a+b=d-c  且abcd互不相等 我们 ...

  4. elasticsearch 2.2+ index.codec: best_compression启用压缩

    官方说法,来自https://www.elastic.co/guide/en/elasticsearch/reference/2.2/index-modules.html#_static_index_ ...

  5. 原生JS日历 + JS格式化时间格式

    公司项目中用到,以前没做过,废了好几个小时 终于做好了 先来效果图(暂时没写样式 凑合着看吧) 点击左右按钮都能改变月份 下方表格中的数据也会跟着变化 贴上代码 : html部分: <div s ...

  6. java中商业数据计算时用到的类BigDecimal和DecimalFormat

    1.引言 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确 ...

  7. 移植 MIUI Framework

    移植MIUI Framework 原文:http://www.miui.com/thread-409543-1-1.html 1. 为什么使用代码插桩 首先我们来回顾第一章中的Android软件架构图 ...

  8. HAWQ取代传统数仓实践(十七)——事实表技术之累积度量

    累积度量指的是聚合从序列内第一个元素到当前元素的数据,例如统计从每年的一月到当前月份的累积销售额.本篇说明如何在销售订单示例中实现累积月销售数量和金额,并对数据仓库模式.初始装载.定期装载做相应地修改 ...

  9. 【转载】VC获取MAC地址的4种方法

    From:http://blog.csdn.net/pdfmaker/article/details/465748 有需求才有创造,有了问题才会想着去解决,那么我这里的获取MAC地址的第4种方法也是在 ...

  10. php 中的杂项函数

    1.$arr = range(1, 10);   print_r($arr); Array(    [0] => 1    [1] => 2    [2] => 3    [3] = ...