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数据结构
Pandas处理以下三个数据结构 - 系列(Series) 数据帧(DataFrame) 面板(Panel) 这些数据结构构建在Numpy数组之上,这意味着它们很快. 维数和描述 考虑这些数据结构的最 ...
- 报错Mapped Statements collection does not contain value for com.atguigu.mybatis.dao.EmployeeMapperPlus
报错Mapped Statements collection does not contain value for com.atguigu.mybatis.dao.EmployeeMapperPlus ...
- <<Hadoop基础教程》之初识Hadoop【转】
Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. <Hadoop基础教程> ...
- css3 放大缩小代码
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- spring3: Bean的命名与Bean的实例化
http://jinnianshilongnian.iteye.com/blog/1413857 2.3.1 XML配置的结构 一般配置文件结构如下: <beans> <impor ...
- web自动化常用定位和方法总结
一. driver常用方法 二. 常用定位 三. 元素在页面不可见区域 四. iframe的操作 五. 页面弹出框:加等待时间 六. windows弹出框 七. 鼠标操作 八. 下拉列表 注意:下图中 ...
- Microsoft Edge Certified with EBS 12.1 and 12.2
I am very pleased to announce that Microsoft Edge is certified as a new browser for Oracle E-Busines ...
- 【scala】getter和setter
我们在用Java的时候经常把一些字段定义为private类型来完成封装,这样外界就无法访问. 如果外界访问或者修改该字段的时候,只能通过该字段提供的getter和setter方法来实现. 在Scala ...
- opencv:图像的创建和储存
示例代码: #include <opencv.hpp> #include <vector> using namespace std; using namespace cv; v ...
- ARM的编程模式和7种模式
ARM采用的是32位架构 ARM阅读 --Byte: 8 bits --Halfword: 16 bits(2 byte) 半字 --Word: 32 bits( ...