一、直接导出成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 包含导出所需要的jar包,并且包含直接导出数据库和传参两种方式 java导出PDF文件实例.rar java导出PDF文件实例.rar
包含导出所需要的jar包,并且包含直接导出数据库和传参两种方式 java导出PDF文件实例.rar java导出PDF文件实例.rar
java开发水晶报表所有类包及导出PDF实例
Java 实现 FusionCharts 图表导出图片或PDF文件功能,经典示例源码!
framemark导出word以及pdf实例工具类很使用,可以下载试一下QQ1039894819
FusionCharts导出图片实例java版[参照].pdf
java导出excel小实例[归类].pdf
java Pdf 导出 中文 解决 jar 包 ,包括实例代码
Java 导出 PDF 格式文件 jar 包 包括 实例代码!
easypoi操作excel导出 导入,word文档导出,HTML导出,PDF导出
入股合作协议书(标准版).pdf
Aspose.Words通过模板导出pdf和word示例,亲测可用,可以通过word中模板导出word或pdf文件,采用标签定位,直接运行源码即可,非常好用。
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
本篇文章主要介绍了java根据模板动态生成PDF实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java 递 归 实 例
Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...
所有说明全部在 每个html文件中 :完成所有实例程序: 各个功能点和操作说明的对应文件: 1. 导出图片: only_pic.html 2. 导出图片到word: word_pic.html 3. 导出图片和内容到word: word_content_pic....
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
SpringMVC与iReport(JasperReports) 5.6整合开发实例,PDF报表支持中文显示。