前段时间公司的项目,有一个需求是拼接HTML代码,然后转化成PDF供客户下载,本来以为是个挺简单的事,就从网上找了个flying saucer在本地生成的Demo,结果在本地生成是成功的,结果在做项目时,发现不可用,后来也是费了很多时间,试了很多方法,最后终于搞定。
说一下思路,其实很简单,先在服务器上创建一个临时的文件夹,用于保存PDF文件,然后将PDF文件写到response的流中进行下载,最后在临时文件夹中删除PDF文件。当然,最后一步也可以做个定时任务啥的,这个看各位的需求吧 = =。
OK,上代码:
首先看一下项目结构
web.config配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- 配置Spring MVC DispatcherServlet -->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<!-- 加载SpringMVC的xml到 spring的上下文容器中 -->
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:SpringMVC-servlet.xml
</param-value>
</init-param>