ITextSharp Table使用 (转)
原文: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使用 (转)的更多相关文章
- 在Asp.Net中操作PDF – iTextSharp - 使用表格
		使用Asp.Net生成PDF最常用的元素应该是表格,表格可以帮助比如订单或者发票类型的文档更加格式化和美观.本篇文章并不会深入探讨表格,仅仅是提供一个使用iTextSharp生成表格的方法介绍 使用i ... 
- 新版 itextsharp pdf code
		using System; using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; namespace iTextShar ... 
- 用itextsharp打印pdf示例
		学习了用itextsharp输出PDF文档,支持用XML定义文档,可定义多个数据源,简单的表达式,用于项目中效果还不错,其中PdfPageEvent类由包大人提供. 示例程序定义了一个简单的xml文件 ... 
- iTextSharp生成pdf的一个简单例子
		效果图: 参考:http://www.cnblogs.com/CareySon/archive/2011/11/09/2243496.html http://www.cnblogs.com/julyl ... 
- [ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题)
		原文:[ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题) [ASP.net MVC] 将HTML转成PDF档案 ... 
- 如何使用ITEXTSHARP将HTML代码字符串写进PDF
		原文 如何使用ITEXTSHARP将HTML代码字符串写进PDF itextsharp包括一个简单的类,可以用来根据html代码或字符串创建pdf文件.使用此类,你可以使用短短几行代码,就将 HTML ... 
- iTextSharp快速使用指南
		前言 最近公司一直使用iText开发PDF报表,使用一段时间之后发现iText这个类库虽然是庞大无比,但作为程序猿我们不需要知道所有的类和方法,我们只需要知道如何使用即可. 所以这篇文章就是告诉大家如 ... 
- iTextSharp 使用详解(转)
		PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下 ... 
- 利用ITextSharp导出PDF文件
		最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ... 
随机推荐
- Pandas描述性统计
			有很多方法用来集体计算DataFrame的描述性统计信息和其他相关操作. 其中大多数是sum(),mean()等聚合函数,但其中一些,如sumsum(),产生一个相同大小的对象. 一般来说,这些方法采 ... 
- 浅谈 django Models中的跨表
			跨表操作在数据库操作非常常用,虽然其会降低读取数据的性能,但是它能节约数据在硬盘中的占用,优化数据表的结构和各自之间的关系. 在sql中,一般跨表需要用到 join 关键字 select * from ... 
- 禁用Browser Link
			Browser Link是VS 2013开始引入的一个强大功能,让前端代码(比如AngularJS的代码)在VS中的修改更加轻而易举. 前端代码是运行在浏览器中,而Visual Studio通常只会和 ... 
- 简单使用JDOM解析XML
			原文:http://liuwentao.iteye.com/blog/59978 使用JDOM解析XML一.前言JDOM是Breet Mclaughlin和Jason Hunter两大Java高手的创 ... 
- react-router-dom: 重定向默认路由
			<appLayout> <Switch> <Route path='/' exact render={()=> ( <Redirect to={this.ge ... 
- 【tensorflow:Google】三、tensorflow入门
			[一]计算图模型 节点是计算,边是数据流, a = tf.constant( [1., 2.] )定义的是节点,节点有属性 a.graph 取得默认计算图 g1 = tf.get_default_gr ... 
- c#中绝对路径和相对路径
			文件操作涉及一个非常重要的概念——文件路径.文件路径是指用来标识系统中文件存放位置的字符串.如:D:\\test.txt,表示在D盘根目录下存入test.txt文件. 文件路径分为绝对路径和相对路径. ... 
- boost库做什么用呢?
			1.C++标准库不是已经很全面了吗?Boost又不是界面库,它主要解决些什么问题呢?哪类问题?2.Boost的开发人员都是C++标准委员会的吧,为什么没把它列做标准库,有什么不完善的问题吗? 3.Bo ... 
- Linux SSH的命令详解[转]
			http://www.linuxidc.com/Linux/2008-02/11055.htm前一阵远程维护Linux服务器,使用的是SSH,传说中的secure shell. 登陆:ssh [hos ... 
- 旧书重温:0day2【11】第6章 狙击windows的异常处理
			昨晚经过一番努力,又把第六章的内容温习了一遍! 随手,做了一个实验!狙击windows的异常处理, 顺便也把过程记录了下来!省事!(有图) 今早,论坛一直无法打开! 就推迟到了现在! 哈哈 正题: 第 ... 
