原文: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. SQLite 插入大量数据慢的解决方法

    sqlite 插入数据很慢的原因:sqlite在没有显式使用事务的时候会为每条insert都使用事务操作,而sqlite数据库是以文件的形式存在磁盘中,就相当于每次访问时都要打开一次文件,如果对数据进 ...

  2. python学习笔记(异常处理)

    上次提到正则表达式 当未匹配到数据返回值 None 再使用 match.group 会出现异常 AttributeError 为了避免异常我改成“ match != None” 这次加入异常处理 #! ...

  3. 在windows x64上部署使用Redis

    一.下载Redis 下载地址:https://github.com/MSOpenTech/redis/releases 二.安装Redis 将下载文件解压到D:\redis 后,可见: 三.启动Red ...

  4. python面向对象编程 继承 组合 接口和抽象类

    1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均用点来访问自己的 ...

  5. LeetCode OJ:Plus One (加1)

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  6. Android系统自带分享功能的实现(可同时分享文字和图片)

     /** * 分享功能 * * @param context * 上下文 * @param activityTitle * Activity的名字 * @param msgTitle * 消息标题 ...

  7. 2 秒杀系统模拟基础实现,使用Redis实现

    这一篇,我们来使用redis进行数据存储. 新建一个redis的service实现类 package com.tianyalei.service; import com.tianyalei.model ...

  8. Android OpenCSV

    OpenCSV https://sourceforge.net/projects/opencsv/ 使用参考 http://stackoverflow.com/questions/16672074/i ...

  9. Exception in thread "main" java.lang.OutOfMemoryError: Java heap space(Java堆空间内存溢出)解决方法

    http://hi.baidu.com/619195553dream/blog/item/be9f12adc1b5a3e71f17a2e9.html问题描述Exception in thread &q ...

  10. 毕业生、程序猿转岗该如何选择Java、大数据和VR?答案在这里!

    许久不见的朋友请我吃饭,期间给我介绍他一个弟弟,说明年要毕业了,还不知道找啥工作,说有培训机构让他学VR.大数据什么的,不知道前景咋样,想咨询一下我.相信很多朋友面临毕业,都不知道该从事哪个行业,自己 ...