`
wuzijingaip
  • 浏览: 329664 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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代码 
  1. package com.lwf.eus.servlet;  
  2.   
  3. import java.io.ByteArrayOutputStream;  
  4. import java.io.IOException;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.ServletOutputStream;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11.   
  12. import com.itextpdf.text.Document;  
  13. import com.itextpdf.text.DocumentException;  
  14. import com.itextpdf.text.Paragraph;  
  15. import com.itextpdf.text.pdf.PdfWriter;  
  16.   
  17. public class ListRocarsReportServlet extends HttpServlet {  
  18.     private static final long serialVersionUID = 1L;  
  19.   
  20.     public ListRocarsReportServlet() {  
  21.         super();  
  22.     }  
  23.   
  24.     protected void doGet(HttpServletRequest request,  
  25.             HttpServletResponse response) throws ServletException, IOException {  
  26.         this.doPost(request, response);  
  27.     }  
  28.   
  29.     protected void doPost(HttpServletRequest request,  
  30.             HttpServletResponse response) throws ServletException, IOException {  
  31.         Document doc = new Document();  
  32.         ByteArrayOutputStream ba = new ByteArrayOutputStream();  
  33.         try {  
  34.             PdfWriter writer = PdfWriter.getInstance(doc, ba);  
  35.             doc.open();  
  36.             doc.add(new Paragraph("Hello World"));  
  37.   
  38.         } catch (DocumentException e) {  
  39.             e.printStackTrace();  
  40.         }  
  41.         doc.close();  
  42.   
  43.         response.setContentType("application/pdf");  
  44.         response.setContentLength(ba.size());  
  45.         ServletOutputStream out = response.getOutputStream();  
  46.         ba.writeTo(out);  
  47.         out.flush();  
  48.     }  
  49.   
  50. }  

 

 

三、由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.*"%>  
  11.   
  12.   
  13.   
  14. <%  
  15.     response.setContentType("application/pdf");  
  16.     Document doc = new Document();  
  17.     ByteArrayOutputStream ba = new ByteArrayOutputStream();  
  18.   
  19.     PdfWriter writer = PdfWriter.getInstance(doc, ba);  
  20.     doc.open();  
  21.     doc.add(new Paragraph("Hello World"));  
  22.     doc.close();  
  23.   
  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代码 
  1. jsp导出时会报错:  
  2. org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response  
  3.     org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)  
  4.     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)  
  5.     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)  
  6.     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)  
  7.     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)  

 

   报错原因:

Java代码 
  1. JSP调用response.getWriter与response.getOutputStream()相冲突!  
  2. 解决办法:  
Java代码 
  1. 在使用完输出流后调用以下两行代码即可:  
  2. out.clear();  
  3. out = pageContext.pushBody();  

 

代码修改为:

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.*"%>  
  11.   
  12. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  13. <html>  
  14. <head>  
  15. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  16. <title>Insert title here</title>  
  17. </head>  
  18. <body>  
  19.   
  20. <%  
  21.     response.setContentType("application/pdf");  
  22.     Document doc = new Document();  
  23.     ByteArrayOutputStream ba = new ByteArrayOutputStream();  
  24.   
  25.     PdfWriter writer = PdfWriter.getInstance(doc, ba);  
  26.     doc.open();  
  27.     doc.add(new Paragraph("Hello World"));  
  28.     doc.close();  
  29.   
  30.     DataOutputStream output = new DataOutputStream(response.getOutputStream());  
  31.     byte[] bytes = ba.toByteArray();  
  32.     response.setContentLength(bytes.length);  
  33.     for (int i = 0; i < bytes.length; i++) {  
  34.         output.writeByte(bytes[i]);  
  35.     }  
  36.     output.flush();  
  37.       
  38.     //out --jsp   
  39.     out.clear();  
  40.     out = pageContext.pushBody();  
  41.   
  42. %>  
  43. </body>  
  44. </html>  

 

 

 
 
 
 
分享到:
评论

相关推荐

    java导出PDF文件实例.rar

    这个"java导出PDF文件实例.rar"压缩包提供了一个实际的示例,帮助开发者了解如何在Java环境中创建PDF文件。它包括了必要的jar库以及两种不同的导出方法:直接从数据库导出和通过参数传递数据。 首先,我们来看看两...

    java开发水晶报表所有类包及导出PDF实例

    总结来说,这个实例涵盖了Java环境下使用水晶报表的基本流程,包括集成、设计报表、设置数据源、参数,以及导出PDF的关键代码。掌握这些知识点,可以帮助开发者在Java项目中实现高效、灵活的报表生成和导出功能。

    Java 实现 FusionCharts 图表导出图片或PDF文件功能实例源码

    本文将深入探讨如何使用Java实现FusionCharts图表的导出功能,包括导出为图片和PDF文件。 首先,要实现这个功能,你需要在项目中引入FusionCharts的Java库。FusionCharts提供了Java SDK,通过它我们可以与...

    java导出PDF文件

    在Java开发中,导出PDF文件是一项常见的任务,特别是在生成报告、文档或发票等场景下。PDF(Portable Document Format)是一种跨平台的文件格式,能够保持文档的原始格式,无论在哪种设备上打开都能保持一致的显示...

    java导出PDF文件的例子

    Java导出PDF文件是开发过程中常见的一项任务,尤其在生成报告、报表或者文档时非常有用。这个例子中,我们关注的是使用Java库iText来创建PDF文件,它是一个功能强大的库,可以方便地生成和修改PDF文档。iText库分为...

    java导出pdf格式的文件

    ### Java导出PDF格式的文件:关键技术点与实践 #### 引言 在现代软件开发中,导出数据为PDF格式是一种常见的需求,特别是在企业级应用中,如报告生成、发票打印等场景。Java作为一门广泛应用的企业级编程语言,提供...

    java导出pdf、加表格、加水印

    1. **Java导出PDF** - **iText库**:iText是Java中广泛使用的PDF处理库,它提供了丰富的API来创建、修改和操作PDF文档。你可以使用iText创建一个新的PDF文档,添加文本、图片、表格等内容。 - **创建PDF文档**:...

    Java导出PDF,所需的iText jar包

    在这个场景中,我们关注的是使用iText来导出PDF所需的jar包,包括`core-renderer.jar`,`iText-2.0.8.jar`,`iTextAsian.jar`和`iTextAsianCmaps.jar`。 首先,`iText-2.0.8.jar`是iText的主要库文件,包含了创建、...

    java根据模板导出PDF详细教程(包含统计图)

    本文将深入探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据可视化工具。 首先,iText是一个强大的Java库,专门用于创建和操作PDF文档。它提供了...

    JAVA导出PDF Itext 中文文档

    这篇博客文章“JAVA导出PDF Itext 中文文档”可能详细介绍了如何利用Itext库在Java中生成包含中文字符的PDF文件。Itext库支持多种语言,包括中文,使得开发者能够方便地创建多语言的PDF文档。 首先,生成PDF时,...

    java导出pdf.zip

    Java导出PDF是一种常见的技术需求,特别是在开发报告生成、数据可视化或者文档呈现的场景中。在Java中,我们可以使用各种库来实现将数据导出为PDF格式的功能。本篇文章将详细探讨这一主题。 首先,我们需要了解PDF...

    java将页面导出PDF.zip

    在这个案例中,"将页面导出PDF.zip"文件可能包含了使用其中一个库的示例代码,特别是Flying Saucer,因为它擅长将HTML内容转换为PDF。 Flying Saucer是一个强大的Java库,它能够解析HTML并将其渲染为PDF、XPS或其他...

    java根据模板导出PDF详细教程(包含统计图).rar

    在本文档中,我们将探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据处理和图形生成。 首先,iText是一个强大的Java库,用于创建和修改PDF文档。...

    java导出pdf

    在Java编程环境中,导出PDF是一项常见的任务,特别是在企业级应用中,如报表生成、文档输出等场景。PDF(Portable Document Format)格式因其跨平台、易于阅读和打印的特性而被广泛采用。在这个示例中,我们将探讨...

    java生成pdf文件分页输出并添加水印

    在Java中创建PDF文档,首先需要创建一个PdfWriter实例,然后通过这个实例创建PdfDocument对象。例如: ```java Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(...

    framemark导出word以及pdf实例

    framemark导出word以及pdf实例工具类很使用,可以下载试一下QQ1039894819

    java 后端生成pdf模板合并单元格表格的案例.docx

    案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出为PDF文档。这对于需要自动化报表生成或文档制作的应用场景非常有用。 #### 技术栈与工具 - **Java**: 编程语言 - **iText**: PDF处理库,用于...

    java生成pdf

    2. **创建PdfWriter实例**:使用`PdfWriter.getInstance()`方法,将`Document`对象与输出流关联,以便写入PDF数据。 3. **打开Document**:调用`Document.open()`方法,准备开始添加内容。 4. **添加内容**:可以...

    Java+PDF批量压缩图片格式的PDF档(源码Demo)

    Java批量压缩图片格式的PDF档(源码Demo) 适用:仅针对纯图片型的pdf(类似扫描版)进行压缩 原理:压缩图片然后再另存成新文件 实例如下: ├── META-INF │ └── MANIFEST.MF ├── pom.xml └── src ├...

    itext java 导出pdf工具

    以上是iText库在Java中导出PDF的基本概念和操作。实际使用中,你还需要根据具体需求进行深入学习和实践,以充分利用iText的功能。压缩包中的Readme-说明.htm文件可能包含了更详细的使用指南和示例代码,建议仔细阅读...

Global site tag (gtag.js) - Google Analytics