itext生成pdf文件下载 博客分类: JAVA / Lib-tools itextjava pdf
程序员文章站
2024-03-25 15:45:22
...
功能说明:要实现一个功能,用户在web页面点击下载请求,服务端根据客户请求查取数据库数据,渲染模板生成相应pdf文件,输出pdf文件响应客户下载请求。即动态生成pdf响应客户下载请求。
利用itext包生成pdf请求,代码如下:
引入itext包
如果输出pdf文档有中文,则需要加入中文字体库包
上面第4步代码需要加入字体设置,代码修改如下:
利用itext包生成pdf请求,代码如下:
引入itext包
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency>
//1,创建文档对象 Document document = new Document(); //2,监听输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter.getInstance(document, baos); //3,打开文档 document.open(); //4,添加文本 document.add(new Paragraph("pdf渲染好的文本")); //5,关闭文档 document.close(); //6,设置请求返回类型 response.setContentType("application/pdf"); response.setHeader("Content-Disposition", "attachment; filename=onetouchExchangeAccount.pdf"); response.setContentLength(baos.size()); OutputStream out = response.getOutputStream(); baos.writeTo(out); out.flush(); out.close();
如果输出pdf文档有中文,则需要加入中文字体库包
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>
上面第4步代码需要加入字体设置,代码修改如下:
BaseFont bfChinese = BaseFont.createFont( "STSongStd-Light" , "UniGB-UCS2-H" , false ); Font fontChinese = new Font(bfChinese , 12, Font.NORMAL); document.add(new Paragraph("pdf渲染好的文本",fontChinese));