这段时间一直很忙,一直没有继续写下去,不过第一章算是完成了,现在贴出来
小站开张了 www.passtwo.com 欢迎光临!
====================================================================
第三步:打开文档
调用Document.open()是非常关键的。当你向一个没有打开的document对象里面添加内容的时候iText会抛出一个异常。在你打开这个document之前会做一些初始化工作。这同样适用于本教程的其他地方。我们先来看一下下面两个例子:
简单加密的文档
如果你想创建一个加密的文档,你应该在文档打开之前调用document对象的setEncryption方法。如果你试图在文档打开之后调用setEncryption方法,那么iText将会抛出DocumentException异常,显示的错误消息是:Encryption can only be added before opening the document.(加密只能在文档打开之前调用)
相关java文件:com.lowagie.examples.general.HelloEncrypted
输出结果:HelloEncrypted.pdf (密码:hello)
meta数据
如果我们在Acrobat阅览器里面查看文档的属性(在文件菜单下),默认情况下,我们可以看到一些空的字段(如下图:)
默认情况下iText只调用下面两个metadata方法:addProducer() 和 addCreationDate(),你可以改变producer(制作者)和creation date(制作日期),但是你不需要这么做。我们也可以使用下面的方法来改变Description部分的metadata:
Title(标题): | addTitle(java.lang.String) |
Author(作者): | addAuthor(java.lang.String) |
Subject(主题) | addSubject(java.lang.String) |
Keywords(关键字) | addKeywords(java.lang.String) |
Application(应用) | addCreator(java.lang.String) |
如果使用下面的示例代码:
document.addTitle("Hello World example");
document.addAuthor("Bruno Lowagie");
document.addSubject("This example explains how to add metadata.");
document.addKeywords("iText, Hello World, step 3, metadata");
document.addCreator("My program using iText");
最后的结果如下:
示例JAVA文件:com.lowagie.examples.general.HelloWorldMeta
输出结果:HelloWorldMeta.pdf
如果你看了API文档的话,你将会看到一个一般的方法:addHeader(java.lang.String, java.lang.String)。但是这个方法对PdfWriter没有任何的影响,但是会影响HtmlWriter。
第四步:添加内容
向一个PDF文档中添加内容的方法有很多种,最简单的方法是使用high level objects(高级对象),就像Chunk, Phrase, Paragraph等等。认识到这一点是非常重要的:并不是所有的类型都能支持所有的Writer。例如:PdfPTable对象只支持PDF,不能在RTF或者HTML中使用。如果你将一个PdfPTable对象添加到一个文档,那么RtfWriter和HtmlWriter对象将会忽略这个对象。
如果你不需要RTF或者HTML文档,你也可以在绝对位置添加对象。在iText里面使用了大量的PDF标准语法。所以,你可以使用iText做很多功能强大的事情。
使用PdfGraphics2D-object向文档中添加内容也是允许的,你可以在本教程的其他地方了解到更多
第五步:关闭文档
关闭文档是非常重要的一步,这个操作将会把添加的内容写到Write对象所对应的输出流中,然后关闭这个输出流,在finalize方法中同样会调用Close方法,但是不要指望,你最好自己关闭这个文档。
2006 年 7 月 21 日 第一节翻译完毕