Как добавить представление PDF в мое веб-приложение Spring MVC (3)? - PullRequest
0 голосов
/ 12 марта 2012

У меня есть веб-приложение Spring MVC, которое генерирует отчеты с использованием JSP / JSTL.Теперь клиент просит, чтобы я создал ссылку на версии отчетов в формате PDF, которые будут иметь несколько иной макет (например, потерять нумерацию страниц, навигацию и т. Д.).

В моем контексте сервлета у меня есть:

<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>

Который взят из учебника где-то.Кажется, это работает как мой старый распознаватель представлений, так как GET с или без .html обрабатывается моим reportController (сопоставление пути запроса аннотации) и передается в JSP и отображается правильно.Методы ReportController возвращают строки, которые разрешаются в JSP.

Каким-то образом мне нужно настроить представление PDF, в котором можно настроить макет, возможно, с использованием CSS или XSLT.

Итак, прямо сейчас GET-запрос к reports / basic / или reports / basic.html вернет рендеринг JSP, мне нужно иметь возможность выполнять GET-запросы для получения PDF по URL-адресам, таким как reports / basic.pdf

1 Ответ

2 голосов
/ 12 марта 2012

Создание PDF выходит за рамки самой Spring.

Возможно, вам стоит взглянуть на вопрос переполнения стека: Использование itext для преобразования HTML в PDF .В нем обсуждается, как создавать PDF-файлы из HTML-страницы, например, с помощью IText , Pd4mL .

Другой способ обсуждается здесь .Он основан на XSTL.

Конечно, вы можете интегрировать свое решение в приложение Spring, но Spring предоставит вам не так много дополнительной поддержки для этой задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...