天道酬勤

摘要: 前言 在我们将一些基本构建块(Chunk,Paragraph,Chapter等)添加到Document对象的实例中是,基本的构建块是由PdfWriter对象转换为pdf语法。在这个过程中,有一个我们很少直接使用但很重要的类:PdfDocument。这个类负责检测high-level对象,同时也负责调用IPdfPageEvent接口的页面事件(page event)。IPdfPageEvent接口... 阅读全文
posted @ 2012-07-13 23:17 JulyLuo 阅读(2013) 评论(0) 推荐(0)
摘要: 前言在第二节和第四节中我们使用iText内部使用的对象和方法来构建一个文档。使用Chunk类时我们可以设置其背景色和下划线,使用PdfPTable类时我们可以设置边框和背景色,但如果这些都还不够呢?如果你像为Chunk类创建一个椭圆的背景,为PdfPCell类创建圆角那要如何处理。这一节就是要介绍Chunk,Paragraph,Chapter,Section,PdfPTable和PdfPCell类的自定义功能。在前面的章节中当内容不能完全填充一页时,iText会自动创建新的一页,但我们可能希望在每一页上自动添加一些元数据:页眉,页脚或者水印。这些都可以通过page event事件完成。以上所说 阅读全文
posted @ 2012-07-12 23:29 JulyLuo 阅读(2967) 评论(0) 推荐(2)
摘要: 前言在第二节中我们创建了大量high-level的对象,iText会自动对其布局。在第三节的时候我们学会了writing to direct content,然后使用ColumnText对象将high-levl和lowel-level对象组合起来使用。目前为止我们将PdfPTable对象当作high-level对象使用,因此在其被添加到Document时:单元格的文本内容会被添加到文本层(text layer),其它所有的边框,背景色,图片都添加到文本层的下面。但是我们也可以将PdfPTable添加到文本层的上面抑或是图形层的下面。Working with WriteSelectedRows( 阅读全文
posted @ 2012-07-10 22:19 JulyLuo 阅读(2859) 评论(3) 推荐(2)
摘要: 前言在上一节中,通过listing 4.16产生的表格拥有一个头,表头中显示的为日期。如果我们仔细观察此PDF的话你会发现基本上每一部电影的信息都会超过一页,表格中数据被分割的不错,但是表头却消失了。在这一节中我们会fix这个问题,而且还会为表格添加footer。Repeating headers and footers好了直接上效果图:上图是具体一天的电影播放信息,日期显示在第一行,第二行包括一些列的描述信息:Location,Time,Run Length等,同样的信息还被加入到footer中。为了实现上图的效果我们需要添加三列:背景为黑色且有日期的一列,背景为灰色的二列(一列添加到hea 阅读全文
posted @ 2012-07-09 19:08 JulyLuo 阅读(7459) 评论(2) 推荐(0)
摘要: 前言PdfPCell类继承于Rectangle类,因此也继承了很多修改边框和背景色的属性和方法,后续我们会讨论到,但现在我们先要说明PdfPCell的内容模式。在iText的内部PdfPCell的内容被保存在ColumnText对象里面,如果你对ColumnText类有比较清晰的了解那么PdfPCell就很好理解了。但如果大家跳过了第三节直接到这里的话,那还是希望大家先学习第三节中关于ColumnText的内容。PdfPCell in text mode在这个子节中我们会用Phrase和Chunk对象作为填充表格的内容,以下为效果图:这里不能使用Paragraph,List或者Image对象, 阅读全文
posted @ 2012-07-08 16:56 JulyLuo 阅读(4091) 评论(4) 推荐(1)
摘要: 前言iText已经有10年的历史了,如果有人问在这10年中iText中那个对象是最重要的话,本书的作者会毫不犹豫的说是PdfPTable和PdfPCell。因为作者大部分的工作(相信也是大多数人的工作)就是从数据中取出数据然后在文档中以表格的形式呈现出来。因为两个类实在是太重要,这里我们会花费整个第二章的内容来详细说明。Constructing tables在iText中处理Table的有很多老版本的类如Table和PdfTable,但由于有些缺点,而且在处理多页的情况分割表格,控制表格单元格等情况下力不从心,因此有了PdfPTable和PdfPCell的出现。iText最新的版本已经移出了P 阅读全文
posted @ 2012-07-02 22:55 JulyLuo 阅读(3634) 评论(2) 推荐(1)
摘要: 前言在这一节中我们会讨论两个可重用的对象:Image和PdfTemplate对象。在2.3节我们往文档中添加图片的时候其实就已经接触到Image对象。在一般情况下,图片的字节会被保存在pdf文件中分开的流中,页面如果想要包含这个图片只需引用即可,这种类型的对象也叫做XObject。XObject有很多的类型,不过Image和Form XObject是最重要的。Image XObjects当我们将图片添加到文档中时其实就已经和image XObject打交道了,我们知道通过Document.Add方法添加的图片都位于文本的下面,但如果我们希望图片在文本的上面那要如何实现呢?将图片添加到最上层这里 阅读全文
posted @ 2012-06-30 23:47 JulyLuo 阅读(2545) 评论(0) 推荐(2)
摘要: 前言在这一节中我们将会学习ColumnText对象的使用:如果只是往ColumnText中加入Chunk或者Phrase对象,那么我们就处于文本模式(text mode);如果加入其它高层次的对象那么就处于组合模式(composite mode)。在listing3.13种我们调用方法ShowMovieInfo来文档上打印一个大大的P字符。我们希望通过相同的方法往矩形中添加电影的标题,但是ShowTextAligned方法不能包裹文本,而且在这个方法中我们不能再string或者Chunk对象中使用换行。现在我们使用ColumnText提供的SetSimpleColumn方法来完成前一节的Fil 阅读全文
posted @ 2012-06-28 22:10 JulyLuo 阅读(4137) 评论(0) 推荐(1)
摘要: iTex in Action 2nd读书笔记3.3节 阅读全文
posted @ 2012-06-27 22:04 JulyLuo 阅读(3641) 评论(1) 推荐(2)
摘要: 前言在第一节中我们学会了如何创建一个pdf文档,在2.2和2.3节时介绍了iText中的high-level对象的使用。接下来中我们会学习一种完全不同的添加内容模式:这通常也叫做low-level operations,因为我们是直接将pdf的语法添加到页面的内容流中。Introducing the concept of direct content好了先上图:图的左边是通过先添加一个包裹了文本"Foobar Film Festival"的Paragraph到文档中,然后又将一张图片添加到文档中,不过图片的定位是通过SetAbsolutePosition方法实现的。在这里添 阅读全文
posted @ 2012-06-25 22:31 JulyLuo 阅读(3089) 评论(1) 推荐(0)