Я должен быть в состоянии преобразовать динамический HTML (HTML, который представляется на загрузке страницы JavaScript) к PDF. Я знаю, что существует много HTML к преобразователям PDF, но ни один из тех, которых я нашел к настоящему времени, не справляется с динамическим HTML.
Данный инструмент должен быть в состоянии успешно преобразовать следующую страницу - http://www.simile-widgets.org/timeline/
Аплодисменты Anthony
ОБНОВЛЕНИЕ:
Мне не нужна функциональность JavaScript здесь..., т.е. я не должен быть в состоянии взаимодействовать экран... Я просто хочу, чтобы рендеринг украшения экрана был получен в PDF - как то, чтобы делать фотографию после того, как страница будет загружена. И в примере я, если JavaScript только представляет отделения на экран так ничто, что он не должен быть в состоянии обработать, пока он "позволяет" "странице" представить сначала.
Это невозможно сделать. Интерфейсы, доступные для скриптов в PDF, чрезвычайно ограничены по сравнению с полным доступом к DOM и BOM, который вы получаете в веб-браузере. Такое взаимодействие, которое вы можете достичь в PDF, нелегко перевести из того, как оно работает в браузере, и почти наверняка потребует ручной разработки.
В вашем примере страницы есть много эффектов, которые PDF, как статический формат макета документа, просто не может воспроизвести вообще.
Редактировать:
Я просто хочу, чтобы финальный рендеринг экрана был зафиксирован в PDF.
Ах, хорошо, тогда это гораздо более простая и более распространенная проблема.
В этом случае вам придется использовать и автоматизировать настоящий веб-браузер (например, Firefox) или набор инструментов, который обеспечивает всю логику веб-браузера (например, WebKit), а затем либо:
экспорт в PDF, либо с помощью встроенных инструментов, таких как «Печать в файл» в Firefox (с включенными фоновыми изображениями / цветами) или одной из надстроек для экспорта PDF, либо
сделайте снимок изображения не из браузера (и включите изображение в PDF-файл, если необходимо)
См. эти вопросы для обсуждения моментальных снимков браузера.
Вы можете использовать URI javascript для предупреждения текущей модели DOM. например:
javascript:alert("<html>" + document.documentElement.innerHTML + "</html>")
Скопируйте HTML и сохраните в файл.
Затем запустите его через конвертер HTML2PDF.
Попробуйте xhtml2pdf. Вот страница проекта на python.org
Тот факт, что в нем вообще используется JavaScript, означает, что многие конвертеры не будут работать. JavaScript может быть простым, но вам все равно нужен интерпретатор для его обработки.
Я не использовал его для себя, но вы можете попробовать wkhtmltopdf. Он использует движок рендеринга webkit и, как мне кажется, включает полную поддержку javascript. Вам потребуется возможность установить программное обеспечение и запустить исполняемый файл, но в остальном все должно быть довольно просто.