Создание PDF из веб-страницы, обслуживаемой Tomcat - PullRequest
1 голос
/ 24 февраля 2011

У меня возникли проблемы при попытке выяснить, как создать на стороне сервера PDF из веб-страницы с большим количеством javascript, которая подается из Tomcat (приложение Pentaho CE). Контент представляет собой инструментальную панель, которая реагирует на взаимодействие с пользователем. Pentaho (приложение) динамически заменяет div на различное содержимое посредством AJAX-вызовов. Я хотел бы экспортировать в pdf независимо от того, в каком состоянии находится панель пользователя. Нет никаких ограничений на то, что я могу поставить на сервер, но мне нужно избегать установки клиентом чего-либо.

Я посмотрел на это вместе с кучей других гугл-фу: преобразование JSP / HTML-страницы в PDF

wkhtmltopdf кажется популярным выбором; прежде чем я начну биться головой об этом, у меня есть несколько вопросов:

  • Может ли wkhtmltopdf обрабатывать переход на защищенный паролем jsps, где аутентификация выполняется приложением? Не нарушат ли его динамически загруженные элементы?
  • Есть ли способ вернуть клиентское представление на сервер для обработки? Я читал о захвате экрана ...
  • Еще один вариант, который может сработать, - автоматизировать локальный доступ к панели мониторинга на сервере через веб-браузер на сервере и создать PDF-файл таким образом ... это возможно, учитывая ограничения Tomcat и защиту паролем это обрабатывается приложением? Компоненты javascript, которые генерирует Pentaho, недоступны за пределами приложения.

Спасибо!

РЕДАКТИРОВАТЬ:

Хорошие новости! wkhtmltopdf работает! Вид. Я прошел аутентификацию по паролю, введя данные для входа в строку запроса, и сейчас я получаю pdf-файл с правильной страницей. Проблема в том, что компоненты javascript не отображаются ... (они работают для таких страниц, как yahoo.com, поэтому, может быть, я что-то здесь упускаю).

1 Ответ

1 голос
/ 25 февраля 2011

Если у вас много вызовов AJAX, вам следует подождать их.Используйте аргумент --javascript-delay x, где x - время ожидания.

...