我有一个Spring MVC webapp,它使用JSP / JSTL生成报告。客户现在要求我生成一个PDF版本报告的链接,这些版本的布局略有不同(例如,失去分页,导航等)。
在我的servlet上下文中,我有:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="pdf" value="application/pdf"/>
<entry key="html" value="text/html"/>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</list>
</property>
</bean>
这是从某个教程中获取的。这看起来像我的旧视图解析器,因为带有或不带有.html的GET由我的reportController(注释请求路径映射)处理并传递给JSP并正确呈现。 ReportController方法返回一个解析为JSP的字符串。
不知何故,我必须设置一个PDF视图,我可以自定义布局,也许使用CSS或XSLT。
现在,对reports / basic /或reports / basic.html的GET请求将返回JSP呈现,我需要能够执行GET请求以获取诸如reports / basic.pdf之类的URL上的PDF
答案 0 :(得分:2)
创建PDF不属于Spring本身的范围。
您是否应该查看此Stack Overflow问题:Using itext to convert HTML to PDF。它讨论了如何从HTML页面创建PDF,例如使用IText,Pd4mL。
讨论了另一种方式here。它基于XSTL。
当然,您可以将您的解决方案集成到Spring应用程序中,但Spring不会为您提供额外的支持。