java - 如何将 PDF View 添加到我的 Spring MVC (3) Web 应用程序?

标签 java spring model-view-controller pdf view

我有一个 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/

相关文章:

java - Hibernate 映射异常 - 无法确定 : 的类型

Java 超出范围

java - 如何在 Spring Boot 中关闭嵌入式 Tomcat?

python - 导入模型/库类并从 Controller 调用

spring - Controller 无法正常工作

java - 是否可以使用 EJB 升级数据库架构?

java - 为什么在运行 hadoop 时数据节点会关闭?

Spring Data MongoDB 与 Java 8 LocalDate MappingException

java - ServiceImpl 中构造函数的参数 0 需要一个 DAO 类型的 bean,但无法找到

javascript - 如何使跨度可点击?