您的位置:首页 > 其它

使用itext生成PDF文档入门

2010-08-27 13:00 429 查看
因项目的需要,近几天看了看itext生成PDF文档。

生成文档基本为5个步骤。

1,初始化Document对象,:Document document = new Document();

2,配置PDF的输出流:PdfWriter.getInstance(document,FileOutputStream("fileName"));

3,打开Docuement对象:document.open();

4,添加数据进入document对象中:document.add(elements);

5,关闭document对象:document.closed();

官方文档中有itext与servlet的集成,是用户能够在页面中打开PDF文档,目前项目使用struts2,因此参照官方文档使用struts2实现。

action :

public String getPdf(){

Document document = new Document();

ByteArrayOutputStream byOut = new ByteArrayOutputStream();

PdfWriter.getInstance(document,byOut);

document.open();

document.add(elements)://添加数据.

document.closed();

ActionContext context = ActionContext.getContext();

HttpServletResponse response = (HttpServletResponse)context.get(ServletActionContext.HTTP_RESPONSE);

response.setContentType("application/pdf");

response.setContentLength(byOut.size());

ServletOutputStream out = response.getOutputStream();

byout.writeTo(out);

return SUCCESS;

}

JSP:

在页面头<%@page %>中增加import="java.io.*,com.lowagie.text.*,com.lowagie.text.pdf.*"//itext

session = "false"

<%

Document document = new Document();

ByteArrayOutputStream byOut = new ByteArrayOutputStream();

PdfWriter.getInstance(document,byOut);

document.open();

document.add(elements);//添加数据

ServletOutputStream outs = response.getOutputStream();

DataOutput output = new DataOutputStream(outs);

byte[] bytes = buffer.toByteArray();

response.setContentLength(bytes.length);

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

output.writeByte(bytes[i]);

}

out.clear(); //

out=pageContext.pushBody();//

%>

如果只需要下载后台生成的PDF文档,与正常的下载文件差不多。

将action中的:

ActionContext context = ActionContext.getContext();

HttpServletResponse response = (HttpServletResponse)context.get(ServletActionContext.HTTP_RESPONSE);

response.setContentType("application/pdf");

response.setContentLength(byOut.size());

ServletOutputStream out = response.getOutputStream();

byout.writeTo(out);

修改为 this.inputStream = new ByteArrayInputStream(byOut.toByteArray());//inputStream为下载文件时的文件流程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: