快速业务通道

在Java中创建PDF:iText JAR - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

在Java中创建PDF:iText JAR

时间:2009-12-13 CSDN java060515

iText是一个免费的Java-PDF库,通过它可以实现on the fly(动态的)创建PDF。iText是那些需要动态PDF文档生成或操作功能来改进应用程序的开发者的理想选择。iText不是一个用户终端工具,也就是说你不用像使用Acrobat或其它PDF工具那样,只需要把iText内建到自己的程序中,它就可以自动的完成PDF生成和操作。

iText具有如下功能:

◆将PDF传输到浏览器

◆通过XML文件或数据库来生成动态文档

◆支持众多的PDF交互功能

◆添加书签、页码和水印等等

◆分割、连接PDF页面,或对他们进行平移缩放等操作

◆自动填PDF表格

◆为PDF文件添加数字水印

系统要求

JDK 1.4或更高版本

获得方法

可以在这里下载:http://www.lowagie.com/iText/download.html

核心文件是:iText-2.1.5.jar

使用iText生成PDF的简单例子

将itext.jar加入你的class path。并将下边的代码复制到一个叫GeneratePDF.java的文件中,编译并执行,它会在C盘创建一个叫Test.pdf的文件。

import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.Date; import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class GeneratePDF { public static void main(String[] args) { try { OutputStream file = new FileOutputStream(new File("C:\\Test.pdf")); Document document = new Document(); PdfWriter.getInstance(document, file); document.open(); document.add(new Paragraph("Hello Kiran")); document.add(new Paragraph(new Date().toString())); document.close(); file.close(); } catch (Exception e) { e.printStackTrace(); } } }

在上面的代码中我们创建了一个Document类来表示我们的PDF文档,同时,我们将OutputStream对象通过getInstance()方法把输出流给了OutputStream。因此,在上面的例子中,我们创建了一个用于输出的文件,并把输出导入到这个文件。

在Java中创建PDF:iText JAR(2)

时间:2009-12-13 CSDN java060515

使用OutputStream在HTTP请求中生成PDF

有时我们希望为网络应用程序加入PDF生成功能,用户可以通过点击一个保存成PDF文件按钮就可以得到PDF文件,因此需要动态创建PDF并发送到客户端浏览器。

下面的代码使用了Struts的Action class,其中实现了动态创建PDF并将其发送到浏览器的功能

package net.viralpatel.struts.helloworld.action; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; /** * @author KiranRavi_Hegde * */ public class PdfHelloWorldAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Document document = new Document(); try{ response.setContentType("application/pdf"); PdfWriter.getInstance(document, response.getOutputStream()); document.open(); document.add(new Paragraph("Hello Kiran")); document.add(new Paragraph(new Date().toString())); }catch(Exception e){ e.printStackTrace(); } document.close(); return null; } }

自习分析上面的代码,就会发现我们将response.getOutputStream()对象传递给了getInstance()方法。从而iText生成的输出文档就会直接由response输出。同时不要忘记将content type设为application/pdf

设置PDF的属性

生成PDF的同时,也可以设置不同的属性,比如作者名,题目以及文件描述等,下面的代码就生成了一些属性:

document.addAuthor("Kiran Hegde"); document.addCreationDate(); document.addCreator("iText library"); document.addTitle("Hello World PDF");

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号