1、我在调试的的这个输出PDF文件的servlet类,是在工程中配置后直接访问的servlet,web.xml的配置内容为:
<servlet>
<servlet-name>PDFServlet</servlet-name>
<servlet-class>com.pdftest.PDFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PDFServlet</servlet-name>
<url-pattern>/servlet/PDFServlet</url-pattern>
</servlet-mapping>
2、servlet类的内容为:
package com.pdftest;
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.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
this.doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
//创建文档对象,A4纸大小
Document document = new Document(PageSize.A4);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
try {
PdfWriter writer = PdfWriter.getInstance(document, stream);
//设置文档作者
document.addAuthor("Hutton");
//设置文档标题
document.addTitle("this is itext pdf file");
//设置主题
document.addSubject("First PDF");
//设置关键字
document.addKeywords("iText");
//打开文档
document.open();
//在pdf文件中写入文字
document.add(new Paragraph("Hello World,Hello iText"));
//关闭文档
document.close();
} catch (Exception e) {
e.printStackTrace();
}
//设置响应文档类型为pdf
response.setContentType("application/pdf");
//设置响应数据大小
response.setContentLength(stream.size());
//获取响应数据流
ServletOutputStream out = response.getOutputStream();
//将pdf数据流写入响应数据流中
stream.writeTo(out);
out.flush();
out.close();
}
}
<servlet>
<servlet-name>PDFServlet</servlet-name>
<servlet-class>com.pdftest.PDFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PDFServlet</servlet-name>
<url-pattern>/servlet/PDFServlet</url-pattern>
</servlet-mapping>
2、servlet类的内容为:
package com.pdftest;
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.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
this.doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
//创建文档对象,A4纸大小
Document document = new Document(PageSize.A4);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
try {
PdfWriter writer = PdfWriter.getInstance(document, stream);
//设置文档作者
document.addAuthor("Hutton");
//设置文档标题
document.addTitle("this is itext pdf file");
//设置主题
document.addSubject("First PDF");
//设置关键字
document.addKeywords("iText");
//打开文档
document.open();
//在pdf文件中写入文字
document.add(new Paragraph("Hello World,Hello iText"));
//关闭文档
document.close();
} catch (Exception e) {
e.printStackTrace();
}
//设置响应文档类型为pdf
response.setContentType("application/pdf");
//设置响应数据大小
response.setContentLength(stream.size());
//获取响应数据流
ServletOutputStream out = response.getOutputStream();
//将pdf数据流写入响应数据流中
stream.writeTo(out);
out.flush();
out.close();
}
}