java认证:在Java中创建PDF(iTextJAR)Java认证考试

文章作者 100test 发表时间 2009:04:30 06:30:23
来源 100Test.Com百考试题网


  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。因此,在上面的例子中,我们创建了一个用于输出的文件,并把输出导入到这个文件。
  使用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.
  /**
  *
  */
  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").
  更多优质资料尽在百考试题论坛 百考试题在线题库 java认证更多详细资料

相关文章


java认证:tomcat深入内部结构描述Java认证考试
java认证辅导:使用Java命名惯例Java认证考试
如何从JavaFX应用程序进入RESTful网络服务Java认证考试
详解如何让MyEclipse具有强大的提示功能Java认证考试
java认证:在Java中创建PDF(iTextJAR)Java认证考试
JAVA认证:Force.comIDE功能一览及新版简介Java认证考试
成为Java高手需注意25个学习目标Java认证考试
java认证:JavaSocket编程的一个秘密类Java认证考试
java认证:为什么不能直接通过IP访问网站Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛