转载自:http://blog.sina.com.cn/s/blog_85987afc0101coo2.html
如今PDF格式文档的使用已经越来越普遍,它在文档压缩、安全等方面都表现的非常优秀。那么如何使用Java语言开发应用来输出PDF格式的文档呢?答案就是iText,它是一个开发源代码的项目,你可以使用iText方便的实现PDF的输出。
iText简介
*请记住:把itext.jar放到你的ClassPath 之中
下面,先举一个HelloWorld的例子来向大家介绍iText的使用方法。
package test1; import java.io.FileNotFoundException; import java.io.FileOutputStream; import com.lowagie.text.*; import com.lowagie.text.pdf.*; public class HelloWorld { } |
现在运行上面的代码,如果一切正常的话你会在”c:/”看到一个名为hello.pdf的文件。打开这个文件,看到了什么?是的,文档里有一行字符“HelloWorld”。
更复杂的设置
public Document(); public Document(Rectangle pageSize); public Document(Rectangle pageSize, |
第一个设置文档的页面大小,第二个除了设置文档的页面大小还设置页面边距。下面我分别给出例子。
Rectangle pSize=new Rectangle(144,90); |
Rectangle pSize=new Rectangle(144,90); |
将第一个例子中的代码按上面的方法修改然后运行,你可以看到输出的PDF文档将是这个样子,文档变得很小而且背景是蓝色:
在上面的例子中我们通过Rectangle设置了文档的大小,其实iText已经为我们定义好了许多常用的页面,比如:A0-A10, LEGAL, LETTER等等,这些都放在com.lowagie.text.PageSize这个类中,你可以通过调用PageSize中的静态方法直接引用页面信息。比如:
PageSize.A4; |
设置字体
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); |
在上面的代码中设置了中文字体的显示,你只要使用下面的代码就可以包中文加到PDF中了
String title = "XXXX:XXXX"; |
如果你觉得这样设置很麻烦的话,呵呵,那你要自己扩展它的源代码了,设置字体全部在那个BaseFont里边。
在这里可能会出现下面的错误
Exception in thread "main" com.itextpdf.text.DocumentException: Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized.
解决的办法在
http://blog.csdn.net/id19870510/article/details/6105574
编辑表格
//定义一个表格 |
http://blog.csdn.net/vean_system/article/details/8549448
放置图片
现在你一定知道如何把一个图片加到文档中了,没错只要声明一个Image对象就可以了,这里的Image和AWT中的Image使用方法是一样的。
//定义一个图片 |
给PDF添加背景图片
http://blog.csdn.net/flyfeifei66/article/details/6739856