我有一个 Spring MVC Web 应用程序,它使用 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>
这是摘自某处教程的。这似乎与我的旧 View 解析器一样工作,因为带或不带 .html 的 GET 由我的 reportController (注释请求路径映射)处理并传递到 JSP 并正确呈现。 ReportController 方法返回一个解析为 JSP 的字符串。
不知何故,我必须设置一个可以自定义布局的 PDF View ,也许可以使用 CSS 或 XSLT。
所以现在对 reports/basic/或 reports/basic.html 的 GET 请求将返回 JSP 渲染,我需要能够执行 GET 请求以在 reports/basic.pdf 等 URL 上获取 PDF
最佳答案
PDF 的创建超出了 Spring 本身的范围。
您应该看看这个 Stack Overflow 问题:Using itext to convert HTML to PDF 。它讨论如何从 HTML 页面创建 PDF,例如使用 IText , Pd4mL .
讨论了另一种方式here 。它基于XSTL。
当然,您可以将您的解决方案集成到 Spring 应用程序中,但 Spring 不会为该任务提供太多额外支持。
关于java - 如何将 PDF View 添加到我的 Spring MVC (3) Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9666919/