iText是一个可以操作pdf的开源项目,应用比较广泛,下载地址:http://www.lowagie.com/iText/download.html
我们的内容一般都有中文,在下载完iText的jar包后,还需要额外的下载iText中文支持包iTextAsian.jar,下载地址:http://nchc.dl.sourceforge.net/sourceforge/itext/iTextAsian.jar
1.现在开始使用iText,编写一个最简单的hello world例子:
(DocumentException e) {
e.printStackTrace();
}
该例子将在c盘建立文件myfile.pdf,生成pdf的内容为Hello World
2.下面我们需要把内容"Hello World"替换为中文"测试内容",代码修改如下:
(DocumentException e) {
e.printStackTrace();
}
3.在很多情况下,我们需要把生成的pdf文档直接让用户下载,而不是保存在服务器上某一个位置,继续改造我们前面编写的代码:
//设置输出类型,这里我们需要以文件流的形式提供下载
response.addHeader("Content-Disposition", "attachment; filename=myfile.pdf");
response.setContentType("application/octet-stream");
response.setContentLength(outputStream.size());
ServletOutputStream out = response.getOutputStream();
outputStream.writeTo(out);
out.flush();
}catch (DocumentException e) {
e.printStackTrace();
}
为了理解下载的功能,可以参考我写的上一篇文章:JSP学习笔记(四十七):以文件流方式读取文件,并且强制下载
4.当然我们制作pdf的时候,不可能仅仅输入简单的文字,下面提供制作表格的代码,我偷了下懒,是从网上直接copy过来的,不过我经过测试,是可以运行的:
(DocumentException e) {
e.printStackTrace();
}