Мне было интересно, есть ли способ превратить всю HTML-страницу в png (или другое изображение?). Я пытаюсь создавать PDF-файлы на лету, но он использует мои стили как текст, но я хочу, чтобы стили оставаться таким же, как страница (куфон и все такое). Любая помощь будет оценена по достоинству! :)
превратить веб-страницу в изображение на лету?
- Некоторые браузеры поддерживают возможность печати документа в формате PDF. Вы пробовали это? 11.12.2010
- Я пытаюсь сделать это на лету, поэтому страница в формате pdf создается, а затем открывается/загружается пользователем. 11.12.2010
- О, так автоматизированное решение? Будет ли работать такой сервис, как Browsershots? 11.12.2010
- Какая ОС? В Mac OS X это вариант: paulhammond.org/webkit2png 11.12.2010
Ответы:
Это не выглядит простым. Бэкэнд (PHP и т. д.) не выполняет рендеринг, верстку. Он просто генерирует контент.
Макет и визуальные аспекты веб-сайта выполняются вашим клиентом (браузером), и серверная часть не имеет доступа к ним.
Однако для файла HTML существуют библиотеки, которые могут преобразовать его в формат PDF, например Prince XML, который вроде на это способны.
Единственный способ создать изображение, идентичное или даже близкое к тому, что посетитель видит в своем браузере при просмотре вашего сайта, — это запустить браузер и сделать снимок экрана. Вам нужен механизм рендеринга браузера для рендеринга страницы. Все библиотеки, которые вы найдете для этого без браузера, создают что-то сильно отличающееся от того, что видит посетитель, и вообще не будут отображать cufon или другие причудливые вещи.
Компании, которые предлагают предварительный просмотр скриншотов веб-страницы, теперь используют множество серверов, на каждом из которых работает множество виртуальных ПК, на каждом из которых работает полноценная операционная система и настоящий веб-браузер. У них есть все эти системы, выполняющие задания, открывающие веб-страницы в реальных браузерах, делающие скриншоты и сохраняющие изображения. Вы не сможете воспроизвести это с помощью небольшого PHP-скрипта.
http://ipinfo.info/html/rendering_services.php
Преобразование веб-страниц в изображения и PDF-файлы с использованием PHP — это настоящая головная боль. Решения часто требуют сценариев на уровне ОС, поддельных драйверов принтера или захвата экрана, что может сделать установку довольно хрупкой. Я столкнулся с той же проблемой несколько лет назад и начал работать над собственным расширением PHP, которое использовало движок Gecko для преобразования HTML в PDF, но так и не закончил его.
Лучший ответ, который я видел, не вполне превращает полную веб-страницу в PDF, а вместо этого преобразует XML в PDF. XEP by RenderX – это коммерческий инструмент, который Apple использует для создания документации для разработчиков во многих форматах, включая HTML. и прекрасно оформленные PDF-файлы из источника XML. Самое замечательное в использовании инструмента XEP в сочетании с PHP заключается в том, что PHP очень хорошо работает с XML, поэтому вы можете передать сгенерированный XML в двоичный файл XEP, позволить ему выполнить преобразование в PDF, а затем обработать полученный файл PDF в PHP.
рассмотрите возможность создания обычного файла PDF, напоминающего вашу веб-страницу:
PHP::PDF — построение с использованием php.
Справочник по PDF — структура файла.