一、直接导出成PDF
Java代码
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import com.itextpdf.text.Document;
- import com.itextpdf.text.DocumentException;
- import com.itextpdf.text.Paragraph;
- import com.itextpdf.text.pdf.PdfWriter;
- public class ItextProduce {
- public static void main(String[] args) {
- Document doc = null;
- try {
- doc = new Document();
- PdfWriter.getInstance(doc, new FileOutputStream("C:\\itext.pdf"));
- doc.open();
- doc.add(new Paragraph("Hello World"));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (DocumentException e) {
- e.printStackTrace();
- } finally {
- doc.close();
- }
- }
- }
二、由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代码
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <%@ page
- import="java.io.ByteArrayOutputStream,
- com.itextpdf.text.Document,
- java.io.DataOutput,java.io.DataOutputStream,
- com.itextpdf.text.Paragraph,
- com.itextpdf.text.DocumentException,
- com.itextpdf.text.Document.*,
- com.itextpdf.text.pdf.*"%>
- <%
- response.setContentType("application/pdf");
- Document doc = new Document();
- ByteArrayOutputStream ba = new ByteArrayOutputStream();
- PdfWriter writer = PdfWriter.getInstance(doc, ba);
- doc.open();
- doc.add(new Paragraph("Hello World"));
- doc.close();
- DataOutput output = new DataOutputStream(response.getOutputStream());
- byte[] bytes = ba.toByteArray();
- response.setContentLength(bytes.length);
- for (int i = 0; i < bytes.length; i++) {
- output.writeByte(bytes[i]);
- }
- %>
Java代码
- jsp导出时会报错:
- org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response
- org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
- org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
- org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
- org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
报错原因:
Java代码
- JSP调用response.getWriter与response.getOutputStream()相冲突!
- 解决办法:
Java代码
- 在使用完输出流后调用以下两行代码即可:
- out.clear();
- out = pageContext.pushBody();
代码修改为:
Java代码
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <%@ page
- import="java.io.ByteArrayOutputStream,
- com.itextpdf.text.Document,
- java.io.DataOutput,java.io.DataOutputStream,
- com.itextpdf.text.Paragraph,
- com.itextpdf.text.DocumentException,
- com.itextpdf.text.Document.*,
- com.itextpdf.text.pdf.*"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <%
- response.setContentType("application/pdf");
- Document doc = new Document();
- ByteArrayOutputStream ba = new ByteArrayOutputStream();
- PdfWriter writer = PdfWriter.getInstance(doc, ba);
- doc.open();
- doc.add(new Paragraph("Hello World"));
- doc.close();
- DataOutputStream output = new DataOutputStream(response.getOutputStream());
- byte[] bytes = ba.toByteArray();
- response.setContentLength(bytes.length);
- for (int i = 0; i < bytes.length; i++) {
- output.writeByte(bytes[i]);
- }
- output.flush();
- //out --jsp
- out.clear();
- out = pageContext.pushBody();
- %>
- </body>
- </html>
相关推荐
这个"java导出PDF文件实例.rar"压缩包提供了一个实际的示例,帮助开发者了解如何在Java环境中创建PDF文件。它包括了必要的jar库以及两种不同的导出方法:直接从数据库导出和通过参数传递数据。 首先,我们来看看两...
总结来说,这个实例涵盖了Java环境下使用水晶报表的基本流程,包括集成、设计报表、设置数据源、参数,以及导出PDF的关键代码。掌握这些知识点,可以帮助开发者在Java项目中实现高效、灵活的报表生成和导出功能。
本文将深入探讨如何使用Java实现FusionCharts图表的导出功能,包括导出为图片和PDF文件。 首先,要实现这个功能,你需要在项目中引入FusionCharts的Java库。FusionCharts提供了Java SDK,通过它我们可以与...
在Java开发中,导出PDF文件是一项常见的任务,特别是在生成报告、文档或发票等场景下。PDF(Portable Document Format)是一种跨平台的文件格式,能够保持文档的原始格式,无论在哪种设备上打开都能保持一致的显示...
Java导出PDF文件是开发过程中常见的一项任务,尤其在生成报告、报表或者文档时非常有用。这个例子中,我们关注的是使用Java库iText来创建PDF文件,它是一个功能强大的库,可以方便地生成和修改PDF文档。iText库分为...
### Java导出PDF格式的文件:关键技术点与实践 #### 引言 在现代软件开发中,导出数据为PDF格式是一种常见的需求,特别是在企业级应用中,如报告生成、发票打印等场景。Java作为一门广泛应用的企业级编程语言,提供...
1. **Java导出PDF** - **iText库**:iText是Java中广泛使用的PDF处理库,它提供了丰富的API来创建、修改和操作PDF文档。你可以使用iText创建一个新的PDF文档,添加文本、图片、表格等内容。 - **创建PDF文档**:...
在这个场景中,我们关注的是使用iText来导出PDF所需的jar包,包括`core-renderer.jar`,`iText-2.0.8.jar`,`iTextAsian.jar`和`iTextAsianCmaps.jar`。 首先,`iText-2.0.8.jar`是iText的主要库文件,包含了创建、...
本文将深入探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据可视化工具。 首先,iText是一个强大的Java库,专门用于创建和操作PDF文档。它提供了...
这篇博客文章“JAVA导出PDF Itext 中文文档”可能详细介绍了如何利用Itext库在Java中生成包含中文字符的PDF文件。Itext库支持多种语言,包括中文,使得开发者能够方便地创建多语言的PDF文档。 首先,生成PDF时,...
Java导出PDF是一种常见的技术需求,特别是在开发报告生成、数据可视化或者文档呈现的场景中。在Java中,我们可以使用各种库来实现将数据导出为PDF格式的功能。本篇文章将详细探讨这一主题。 首先,我们需要了解PDF...
在这个案例中,"将页面导出PDF.zip"文件可能包含了使用其中一个库的示例代码,特别是Flying Saucer,因为它擅长将HTML内容转换为PDF。 Flying Saucer是一个强大的Java库,它能够解析HTML并将其渲染为PDF、XPS或其他...
在本文档中,我们将探讨如何使用Java来根据模板导出包含统计图的PDF文档。主要涉及的技术包括iText库、FreeMarker模板引擎以及可能的数据处理和图形生成。 首先,iText是一个强大的Java库,用于创建和修改PDF文档。...
在Java编程环境中,导出PDF是一项常见的任务,特别是在企业级应用中,如报表生成、文档输出等场景。PDF(Portable Document Format)格式因其跨平台、易于阅读和打印的特性而被广泛采用。在这个示例中,我们将探讨...
在Java中创建PDF文档,首先需要创建一个PdfWriter实例,然后通过这个实例创建PdfDocument对象。例如: ```java Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(...
framemark导出word以及pdf实例工具类很使用,可以下载试一下QQ1039894819
案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出为PDF文档。这对于需要自动化报表生成或文档制作的应用场景非常有用。 #### 技术栈与工具 - **Java**: 编程语言 - **iText**: PDF处理库,用于...
2. **创建PdfWriter实例**:使用`PdfWriter.getInstance()`方法,将`Document`对象与输出流关联,以便写入PDF数据。 3. **打开Document**:调用`Document.open()`方法,准备开始添加内容。 4. **添加内容**:可以...
Java批量压缩图片格式的PDF档(源码Demo) 适用:仅针对纯图片型的pdf(类似扫描版)进行压缩 原理:压缩图片然后再另存成新文件 实例如下: ├── META-INF │ └── MANIFEST.MF ├── pom.xml └── src ├...
以上是iText库在Java中导出PDF的基本概念和操作。实际使用中,你还需要根据具体需求进行深入学习和实践,以充分利用iText的功能。压缩包中的Readme-说明.htm文件可能包含了更详细的使用指南和示例代码,建议仔细阅读...