Динамический HTML в PDF - PullRequest
       37

Динамический HTML в PDF

9 голосов
/ 25 февраля 2010

Мне нужно иметь возможность конвертировать динамический HTML (HTML, который отображается при загрузке страницы с помощью JavaScript) в PDF. Я знаю, что существует множество конвертеров HTML в PDF, но ни один из тех, которые я нашел, не справляется с динамическим HTML.

Данный инструмент должен быть в состоянии успешно преобразовать следующую страницу - http://www.simile -widgets.org / timeline /

Приветствие Энтони

UPDATE:

Мне здесь не нужна функциональность JavaScript ... т.е. мне не нужно иметь возможность взаимодействовать с экраном ... Я просто хочу, чтобы окончательный рендеринг экрана был запечатлен в PDF - как фотографирование после загрузки страницы. И в примере, который я предоставил, javascript отображает только элементы div на экране, так что нет ничего такого, с чем он не сможет справиться, пока он «позволяет» «странице» отображаться первым.

Ответы [ 4 ]

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

Нет способа сделать это. Интерфейсы, доступные для сценариев в формате PDF, чрезвычайно ограничены по сравнению с полным доступом к DOM и BOM, которым вы пользуетесь в веб-браузере. Такое взаимодействие, которого вы можете достичь в PDF, не легко перевести на то, как оно работает в браузере, и почти наверняка потребует ручной разработки.

Ваша страница примера имеет множество эффектов, которые PDF, по сути как статичный формат макета документа, просто не может воспроизвести вообще.

Edit:

Я просто хочу, чтобы окончательный рендеринг экрана был записан в PDF

Ах, хорошо, тогда это гораздо более простая и распространенная проблема.

В этом случае вам придется использовать и автоматизировать настоящий веб-браузер (например, Firefox) или инструментарий, обеспечивающий всю логику веб-браузера (например, WebKit), затем либо:

  • экспорт в PDF с использованием встроенных инструментов, таких как «Печать в файл» в Firefox (с включенными фоновыми изображениями / цветами), или одного из расширений экспорта в PDF, или

  • сделать снимок из браузера (и включить изображение в PDF, если нужно)

См. эти вопросы для некоторого обсуждения снимка браузера.

0 голосов
/ 25 февраля 2010

Тот факт, что он вообще использует какой-либо JavaScript, означает, что многие конвертеры не будут работать. JavaScript может быть простым, но вам все еще нужен интерпретатор для его обработки.

Я не использовал его для себя, но вы можете попробовать wkhtmltopdf . Он использует движок рендеринга webkit, и я считаю, что он включает полную поддержку javascript. Вам нужно будет иметь возможность установить программное обеспечение и запустить исполняемый файл, но в противном случае все должно быть довольно просто.

0 голосов
/ 25 февраля 2010

Вы можете использовать URI javascript для оповещения текущего DOM. например:

javascript:alert("<html>" + document.documentElement.innerHTML + "</html>")

Скопируйте HTML и сохраните в файл.
Затем запустите его через конвертер HTML2PDF.

0 голосов
/ 25 февраля 2010

Попробуйте xhtml2pdf. Вот страница проекта на python.org .

...