|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
如今PDF格式文档的使用已经越来越普遍,它在文档压缩、安全等方面都表现的异常优秀,有关它的好处我就不在这里多说了。那么如何使用Java语言开发应用来输出PDF格式的文档呢?在这里给大家介绍iText,它是一个开发源代码的项目,你可以使用iText方便的实现PDF的输出。这篇文章我将向大家介绍如何使用iText来生成PDF文档。 HelloWorld 作为一个程序开发人员,对于HelloWorld程序并不生疏,几乎每一种语言或应用开始总是会举一个HelloWorld的例子来向大家介绍。在开始介绍iText时,我们不妨也从HelloWorld开始 现在运行上面的代码(记住在这之前把itext.jar放到你的ClassPath 之中),假如一切正常的话你会在”c:/”看到一个名为hello.pdf的文件。打开这个文件,看到了什么?是的文档里有一行字符“HelloWorld”,如下图。 怎么样是不是很简朴?当然我们在实际应用时不可能只是简朴的输出一个字符串就完事了,还要作很多的工作,输出更复杂的PDF,下面就让我们开始进一步了解iText的其他功能。 更复杂的设置 分析一下Document的构造方式,我们发现除了我们上一个例子中的无参数构造以外还有两个: /* * Created on 2004-1-3,创建第一个Hello World程序 */ package test1; import java.io.FileNotFoundException; import java.io.FileOutputStream; import com.lowagie.text.*; import com.lowagie.text.pdf.*; public class HelloWorld { public static void main(String[] args) { //创建一个文档对象 Document doc=new Document(); try { //定义输出位置并把文档对象装入输出对象中 PdfWriter.getInstance(doc, new FileOutputStream("c:/hello.pdf")); //打开文档对象 doc.open(); // 加入文字“Hello World” doc.add(new Paragraph("HelloWorld")); // 关闭文档对象,释放资源 doc.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } } } public Document(); public Document(Rectangle pageSize); public Document(Rectangle pageSize, int marginLeft, int marginRight, int marginTop, int marginBottom); 第一个设置文档的页面大小,第二个除了设置文档的页面大小还设置页面边距。下面我分别给出例子。 Rectangle pSize=new Rectangle(144,90); //文档的背景色 pSize.setBackgroundColor(Color.blue); //创建一个文档对象,并设置他的初始化大小 Document doc=new Document(pSize); Rectangle pSize=new Rectangle(144,90); //文档的背景色 pSize.setBackgroundColor(Color.blue); //创建一个文档对象,设置初始化大小和页边距 Document doc=new Document(pSize,5,5,5,5); 将第一个例子中的代码按上面的方式修改然后运行,你可以看到输出的PDF文档将是这个样子,文档变得很小而且背景是蓝色: 在上面的例子中我们通过Rectangle设置了文档的大小,其实iText已经为我们定义好了许多常用的页面,比如:A0-A10, LEGAL, LETTER等等,这些都放在com.lowagie.text.PageSize这个类中,你可以通过调用PageSize中的静态方式直接引用页面信息。比如: PageSize.A4; 设置字体 使用iText可以设置文字的字体,对于我们中国的程序员来说如何显示中文是最紧要的问题。幸好iText中有一个专门的包用来设置亚洲国家的字体你可以从http://itext.sourceforge.net/downloads/iTextAsian.jar下载这个包。然后把它直接放到你的ClassPath中就可以了。如何设置字体呢? BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font FontChinese = new Font(bfChinese, 12, Font.NORMAL); 在上面的代码中设置了中文字体的显示,你只要使用下面的代码就可以包中文加到PDF中了 String title = "我爱喝咖啡"; Paragraph t = new Paragraph(title, FontChinese); doc.add(t); 假如你觉得这样设置很麻烦的话,呵呵,那你要自己扩展它的源代码了,设置字体全部在那个BaseFont里边。 编辑表格 iText中的表格很像HTML中表格的使用不过它有一个cell代表一个格子,基本上这里的Table和Swing中的Table对象是一致的,比如上面代码中对于表格的设置: //定义一个表格 Table table = new Table(2); //设置表格边框 table.setBorderWidth(1); Cell cell = new Cell("Matrix III"); cell.setHeader(true); //分列 cell.setColspan(2); cell.setBackgroundColor(Color.blue); table.addCell(cell); 放置图片 现在你一定知道如何把一个图片加到文档中了,没错只要声明一个Image对象就可以了,这里的Image和AWT中的Image使用方式是相同的。 //定义一个图片 Image jpeg = Image.getInstance("C:/matrix.jpg"); //图片居中 jpeg.setAlignment(Image.ALIGN_CENTER); 结束 有关iText的使用我就大致介绍这些,更深入的东西只有大家参考源代码自己体会了。 返回类别: 教程 上一教程: Eclipse快捷键指南 下一教程: 在Java中如何模仿多继续 您可以阅读与"使用Java生成Pdf文档"相关的教程: · 在JAVA中使用文档对象模型DOM经验小结 · 怎样使用JAVA SERVLET动态生成图片详解 · 使用Java Servlet动态生成图片 · 使用hibernate扩展工具hbm2java根据配置文件生成持久化对象类(2.1.2) · JavaScript在页面间数据传输的使用 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |