ITEXT
第一部分 iText 的简单应用............................................................................................................. 3
第一章 创建一个 Document.................................................................................................... 3
第一步 创建一个 Document 实例: ...............................................................................4
第二步 创建 Writer 实例..................................................................................................6
第三步 打开 Document.................................................................................................... 7
第四步 添加内容 ............................................................................................................ 14
第五步,关闭 document................................................................................................14
第二章 块、短句和段落 ........................................................................................................ 15
块.......................................................................................................................................15
短句 .................................................................................................................................. 16
段落 .................................................................................................................................. 17
字体的延续...................................................................................................................... 18
第三章 锚点、列表和注释 .................................................................................................... 20
锚点 .................................................................................................................................. 20
列表 .................................................................................................................................. 21
注释 .................................................................................................................................. 22
第四章 页眉页脚、章节、区域和绘图对象 ........................................................................23
页眉页脚 .......................................................................................................................... 24
章节和区域...................................................................................................................... 24
图形 .................................................................................................................................. 25
第五章 表格 ............................................................................................................................ 26
一些简单的表格.............................................................................................................. 26
一些表格参数 .................................................................................................................. 28
大表格.............................................................................................................................. 30
内存管理 .......................................................................................................................... 31
嵌套表格 .......................................................................................................................... 31
表格偏移 .......................................................................................................................... 32
表格的绝对位置.............................................................................................................. 32
第六章 图片 ............................................................................................................................ 33
Image 对象 ....................................................................................................................... 33
图片的位置...................................................................................................................... 34
缩放和旋转图片.............................................................................................................. 35
原始图片数据 .................................................................................................................. 36
System.Drawing.Bitmap................................................................................................... 37
TIFF 和 CCITT.....................................................................................................................37
图片和其他对象.............................................................................................................. 39
第二部分 其他文档格式 ................................................................................................................ 39
第七章 XML 和 (X)HTML........................................................................................................39
第八章 RTF 文件 ..................................................................................................................... 40
RTF 包............................................................................................................................... 40
创建一个 RTF 文档 .......................................................................................................... 40
不支持的特性 .................................................................................................................. 41
RTF 中扩展的页眉和页脚............................................................................................... 41
第三部分 iText 的高级应用........................................................................................................... 43
第九章 字体 ............................................................................................................................ 43
TrueType 字体应用 ..........................................................................................................44
TruType 字体集合的应用 ................................................................................................44
第十章 图象和文本的绝对位置 ............................................................................................ 45
pdfContentByte................................................................................................................ 45
简单图形 .......................................................................................................................... 46
文本 .................................................................................................................................. 47
模板(Form xObjects)...................................................................................................48
分栏 .................................................................................................................................. 49
PdfTable............................................................................................................................ 51
颜色(SpotColors)和图案(Patterns) ............................................................................ 52
第十一章 本地和异地转向、目标和概要............................................................................53
本地转向 .......................................................................................................................... 53
异地转向 .......................................................................................................................... 53
第四部分 iText 和 Struts2 ...............................................................................................................55
第十二章 iText 和 struts 的應用............................................................................................55
第一部分 iText 的简单应用
第一章 创建一个 Document
利用 iText 五步创建一个 PDF 文件:helloword。
第一步,创建一个 iTextSharp.text.Document 对象的实例:
Document document = new Document();
第二步,为该 Document 创建一个 Writer 实例:
PdfWriter.getInstance(document, new FileStream("Chap0101.pdf",
FileMode.Create));
第三步,打开当前 Document
document.Open();
第四步,为当前 Document 添加内容:
document.Add(new Paragraph("Hello World"));
第五步,关闭 Document
document.Close();
完整的代码见示例代码 0101。
在例中,不难看出,制作一个 PDF 文件是非常简单的。
注:如果你将例中“document.Add(new Paragraph("Hello World"));”中的字符串
“Hello Word”换成中文,如“这是我的第一个 PDF 文件”,产生的结果一定让你大
失所望,因为生成的 PDF 文件中并没有将中文显示出来,不要担心,在第 9 章中
要专门讲解字体问题,中文显示也就迎刃而解了,如果不能正确显示中文,也就
没有必要翻译本文了。
下面对这几步做详细介绍。
第一步 创建一个 Document 实例:
iTextSharp.text.Document-object 共有三个构造函数:
public Document();
public Document(Rectangle pageSize);
public Document(Rectangle pageSize,
int marginLeft,
int marginRight,
int marginTop,
int marginBottom);
第一个构造函数以 A4 页面作为参数调用第二个构造函数,第二个构造函数以
每边 36 磅页边距为参数调用第三个构造函数
页面尺寸:
你可以通过指定的颜色和大小创建你自己的页面,示例代码 0102 创建一个细
长的浅黄色背景的页面:
Rectangle pageSize = new Rectangle(144, 720);
//pageSize.BackgroundColor = new Color(0xFF, 0xFF, 0xDE);
pageSize.setBorderColor(new BaseColor(0xFF, 0xFF, 0xDE));
Document document = new Document(pageSize);
通常,你不必创建这样的页面,而可以从下面页面尺寸中选择:
A0-A10, LEGAL, LETTER, HALFLETTER, _11x17, LEDGER, NOTE, B0-B5,
ARCH_A-ARCH_E, FLSA 和 FLSE
大多数情况下使用纵向页面,如果希望使用横向页面,你只须使用 rotate()
函数:
Document document = new Document(PageSize.A4.rotate());
详细代码见示例代码 0103。
页边距:
当创建一个文件时,你还可以定义上、下、左、右页边距:
Document document = new Document(PageSize.A5, 36, 72, 108, 180);
在示例代码 0104 中你可以看到该文档有一个 0.5 英寸的左边距和 1 英寸的右
边距,上边距为 1.5 英寸,下边距为 2.5 英寸。
说明:
当创建一个矩形或设置边距时,你可能希望知道该用什么度量单位:厘米、
英寸或象素,事实上,默认的度量系统以排版单位磅为基础得出其他单位的近似
值,如 1 英寸=72 磅,如果你想在 A4 页面的 PDF 中创建一个矩形,你需要计算
以下数据:
21 厘米 / 2.54 = 8.2677 英寸
8.2677 英寸* 72 = 595 磅
29.7 厘米 / 2.54 = 11.6929 英寸
11.6929 英寸* 72 = 842 磅
默认边距为 36 磅即半英寸。
如果你修改了页面尺寸,仅仅影响到下一页,如果你修改了页边距,则影响
到全部,故慎用。
关于页面的初始值,请参考第三步。
第二步 创建 Writer 实例
一旦创建了 document,我们可以创建该文档的多个 Writer 的实例,所有这些
Writer 实例均继承自抽象类“iTextSharp.text.DocWriter”。
同时还有另外一种情况,你可以用 iTextSharp.text.pdf.PdfWriter 产生文档 PDF
文件,如果你想创建一个 TeX 文档,你可以使用 iTextSharp.text.TeX.TeXWriter 包。
Writer 类的构造函数是私有的,你只能通过下面的方法创建一个实例:
public static xxxWriter getInstance(Document document, Stream os);(xxx 是 Pdf
或 Xml)
你可以通过下面的方法创建一个实例:
PdfWriter writer = PdfWriter.getInstance(document, new
FileStream("Chap01xx.pdf"));
但是你几乎永远不会用到 Writer 实例(除非你想创建高级 PDF 或者希望用一
些非常特殊的函数,如 ViewerPreferences 或 Encryption)。所以通过下面的办
法得到实例已经足够了: PdfWriter.getInstance(document, new
FileStream("Chap01xx.pdf"));
在第一步中创建一个文档时,第一个参数意义不大,第二个参数可以是任何
一种流,到目前为止我们一直使用 System.IO.FileStream 将 Document 写入文件中,
示例代码 0105 用到了 System.IO.MemoryStream(这不是一个独立的例子,你必
须在 Servlet Engine 中测试这些代码。
第三步 打开 Document
摘要
在你写入任何实际数据之前,你可能希望通过以下几种方法写入一些关于本
文档的摘要:
public boolean addTitle(String title)
public boolean addSubject(String subject)
public boolean addKeywords(String keywords)
public boolean addAuthor(String author)
public boolean addCreator(String creator)
public boolean addProducer()
public boolean addCreationDate()
public boolean addHeader(String name, String content)
你可以选择自己的标题、主题、关键字、作者、创建程序,但以下产品信息
将始终被添加:iTextSharp (或者 iTextSharp 的引用)和创建时间(实际上这两种方
法是自动调用的)。
你还可以将自定义的名称添加为“报头信息”,但是这对于 PdfWriter 没有任何
作用,如果看看实例代码 0101 产生的 pdf 文件的“文档属性”,我们可以看到仅
仅有 PDF 创建程序和产品日期,而示例代码 0106 的“文档属性”框中有更多的信
息。