zoukankan      html  css  js  c++  java
  • JAVA导出pdf实例

    一、直接导出成PDF 
      
    Java代码 
    1. import java.io.FileNotFoundException;     

    2. import java.io.FileOutputStream;     

    3.     
    4. import com.itextpdf.text.Document;     
    5. import com.itextpdf.text.DocumentException;    

     6. import com.itextpdf.text.Paragraph;     

    7. import com.itextpdf.text.pdf.PdfWriter;     

    8.     
    9. public class ItextProduce {     

    10.     
    11.     public static void main(String[] args) {     

    12.          Document doc = null;     

    13.         try {     
    14.              doc = new Document();     
    15.              PdfWriter.getInstance(doc, new FileOutputStream("C:\itext.pdf"));     

    16.              doc.open();     
    17.              doc.add(new Paragraph("Hello World"));     

    18.          } catch (FileNotFoundException e) {     

    19.              e.printStackTrace();     
    20.          } catch (DocumentException e) {     

    21.              e.printStackTrace();     

    22.          } finally {     
    23.              doc.close();    

     24.          }    

     25.      }     

    26.     

    27. } 

    二、由Servlet导出PDF   
    Java代码 
     package com.lwf.eus.servlet;      

     import java.io.ByteArrayOutputStream;     

     import java.io.IOException;        

     import javax.servlet.ServletException;     

    import javax.servlet.ServletOutputStream;     

     import javax.servlet.http.HttpServlet;     
    import javax.servlet.http.HttpServletRequest;     

    import javax.servlet.http.HttpServletResponse;         

     import com.itextpdf.text.Document;     
    import com.itextpdf.text.DocumentException;     

    import com.itextpdf.text.Paragraph;     

     import com.itextpdf.text.pdf.PdfWriter;          

     public class ListRocarsReportServlet extends HttpServlet {     

    private static final long serialVersionUID = 1L;         

        public ListRocarsReportServlet() {     

             super();     

          }         

         protected void doGet(HttpServletRequest request,     
                  HttpServletResponse response) throws ServletException, IOException {  
             this.doPost(request, response);     

          }          

         protected void doPost(HttpServletRequest request,     
                 HttpServletResponse response) throws ServletException, IOException{
              Document doc = new Document();     
             ByteArrayOutputStream ba = new ByteArrayOutputStream();     

            try {     
                  PdfWriter writer = PdfWriter.getInstance(doc, ba);     

                 doc.open();     
                 doc.add(new Paragraph("Hello World"));     
          

             } catch (DocumentException e) {     

                  e.printStackTrace();     

              }     
             doc.close();          

              response.setContentType("application/pdf");     

              response.setContentLength(ba.size());     
              ServletOutputStream out = response.getOutputStream();    

              ba.writeTo(out);     

             out.flush();     

          }          

     } 

    三、由JSP导出成PDF   
    Java代码 
    1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"    

    2.      pageEncoding="ISO-8859-1"%>     

    3. <%@ page     
    4.     import="java.io.ByteArrayOutputStream,    

     5.      com.itextpdf.text.Document,     
    6.      java.io.DataOutput,java.io.DataOutputStream,     

    7.      com.itextpdf.text.Paragraph,     
    8.      com.itextpdf.text.DocumentException,    

     9.      com.itextpdf.text.Document.*,     

    10.      com.itextpdf.text.pdf.*"%>        

    14. <%     
    15.      response.setContentType("application/pdf");     

    16.      Document doc = new Document();     
    17.      ByteArrayOutputStream ba = new ByteArrayOutputStream();     

    19.      PdfWriter writer = PdfWriter.getInstance(doc, ba);     

    20.      doc.open();     
    21.      doc.add(new Paragraph("Hello World"));     

    2.      doc.close();          

    24.      DataOutput output = new DataOutputStream(response.getOutputStream());
         
    25.     byte[] bytes = ba.toByteArray();     
    26.      response.setContentLength(bytes.length);     

    27.     for (int i = 0; i < bytes.length; i++) {     

    28.          output.writeByte(bytes[i]);     

    29.      }     

    30. %>       
    Java导出pdf文档实例 
    package com.helloweenvsfei.itext; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class FirstPDF { 
    public static void main(String[] args) { // 创建文档对象,A4纸大小 
    Document document = new Document(PageSize.A4); try { 
    // 输出为E:itext.pdf文件 
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E:\itext.pdf ")); // 打开文档 document.open(); // 在pdf文件中写入文字 
    document.add(new Paragraph("Hello World, Hello iText")); // 关闭文档 

    document.close(); } catch (Exception e) { e.printStackTrace(); } } } 
    该程序运行后,将在E盘的根目录下生成一个itext.pdf文件,该pdf文件打开后,效果如图40.2所示。 
    (点击查看大图)图40.2 iText生成的pdf文件  
    通过以上的程序,总结出使用iText生成一个pdf的步骤如下: (1)创建Document对象。 
    Document document = new Document(); 其中,Document有3个构造方法,如下: public Document(); 
    public Document(Rectangle pageSize); 
    public Document(Rectangle pageSize,int marginLeft,int marginRight,int marginTop,int marginBottom)。 
    pageSize是纸张类型的大小,通常可以使用PageSize中的常量来表示,例如PageSize.A4表示A4纸张。marginLeft、marginRight、marginTop和marginBottom分别是正文距离页边的左、右、上、下的补白大小。 
    (2)创建书写器(Writer)与document对象关联,通过书写器可以将文档写入磁盘中。 
    PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream ("E:\itext.pdf ")); (3)打开文档。 document.open(); (4)写入文档内容。 
    document.add(new Paragraph("Hello iText")); 
    写入的文档内容可以是多种类型,这里是带格式的文本Paragraph,还可以是Phrase、Paragraph、Table、Graphic对象等。 (5)关闭文档。 document.close();  

    通过以上5个步骤,就可以生成pdf文档了。

  • 相关阅读:
    前端编码风格规范之 JavaScript 规范
    用队列模拟jquery的动画算法
    延时调用--deferred.js原码分析
    javascript模拟继承
    从国外开源项目中提取的继承类
    webapp应用---cordova.js 3.7.0插件安装总结
    架构师速成8.1-谈做技术人员的态度 分类: 架构师速成 2015-07-18 07:22 56人阅读 评论(0) 收藏
    架构师速成6.6-知识的收集整理学习 分类: 架构师速成 2015-07-16 21:50 254人阅读 评论(0) 收藏
    架构师速成7.4-架构师为什么要带团队 分类: 架构师速成 2015-07-15 09:12 558人阅读 评论(2) 收藏
    架构师速成6.5-也谈设计模式 分类: 架构师速成 2015-07-14 19:48 284人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/wjwen/p/4566172.html
Copyright © 2011-2022 走看看