Подтвердить что ты не робот

Простой механизм компоновки HTML для преобразования HTML в изображение

Мне нужен инструмент для автоматического преобразования простого HTML в изображение. Я буду контролировать ввод HTML, который будет состоять из простых тегов форматирования текста и, возможно, ссылок на изображения - мне не нужно отображать произвольный HTML. Есть ли простой способ сделать это?

Я рассмотрел механизмы компоновки HTML, такие как Gecko и Webkit, но, откровенно говоря, меня переполняет количество вариантов, которые у них есть - мне не нужен полный веб-браузер! Можно ли использовать эти двигатели таким образом? Может ли кто-то направить меня в правильном направлении?

Другие возможности, такие как браузеры, полагаются на скриншоты реальных браузеров, но я собираюсь запустить это приложение на веб-сервере с потенциально большим количеством пользователей, поэтому производительность важна, и я боюсь, что такое решение не будет масштабироваться.

Идеи?

EDIT: Извините, забыл упомянуть, что на моем сервере работает Linux, поэтому решения для Windows не помогут.:)

4b9b3361

Ответ 1

Отвечая на мой вопрос, я нашел этот полезный инструмент, который использует WebKit для рендеринга страницы, а затем отображает результат как изображение или даже в формате PDF!

http://cutycapt.sourceforge.net/

Идея похожа на khtml2png, упомянутую Джей, но мне понравилась эта реализация лучше. Кроме того, для использования в будущем использование X виртуального фреймового буфера через Xvfb не так интенсивно, как я боялся.

Ответ 2

Я использовал CutyCapt, прежде чем он немного неуклюжий и раздутый - требуя Qt.

IMO, PhantomJs (безгласный webkit), безусловно, лучшее решение, быстрое, легкое и чистое. Вы можете сделать много всего с этим.

См. http://phantomjs.org

Или см. this

Ответ 3

Вы можете найти это полезным, если вы работаете в Linux и имеете доступные библиотеки KDE: khtml2png

khtml2png - это программа командной строки для создания скриншотов веб-страниц. Он использует libkhtml (библиотеку, которая используется в веб-браузере KDE Konqueror). В khtml2png 2.0.5 до 2.5.0 "конвертировать" из инструментального средства графического преобразования ImageMagick используется для создания выходных файлов в различных форматах файлов изображений. 2.6.0 и будущая разработка будет использовать встроенное преобразование библиотеки Qt.

Кроме того, чтобы узнать, что предложил Vilx, вы можете использовать html2ps для преобразования HTML в файл ps, затем gs (Ghostscript), чтобы превратить файл ps в png или jpg. См. http://www.karakas-online.de/myLinuxTips/ps2png.html для одного подхода.

Ответ 4

Windows? Если да, то HTMLayout может помочь - он бесплатный движок рендеринга и имеет простой API - использование его из C/С++ - это легкий ветерок - получение HTML в BMP не будет затруднительным.

http://www.terrainformatica.com/htmlayout/

Это тоже бесплатно.

Ответ 5

Возможно, вы можете преобразовать HTML в другой формат, который более легко конвертируется в изображение? В Google я нашел что-то, называемое html2ps и html2pdf. От PS это всего в одном шаге от EPS, и это может быть представлено как изображение уже. Или что-то в этом роде.

Ответ 6

Вы используете приложение PDFCreator. Это приложение позволяет печатать во многих форматах, включая изображения всех видов. Он включает в себя сервер ActiveX/com, который позволяет легко автоматизировать процесс. Вы можете конвертировать практически любую вещь, которую вы можете распечатать. Один из способов устранения этого метода состоит в том, что, поскольку он использует работу с печатью для преобразования, вы можете конвертировать только один документ за раз, поэтому я не знаю, будет ли он достаточно хорош для веб-сайта.

Ответ 7

Мне всегда очень повезло с командой wkhtmltoimage (и для вывода на печать wkhtmltopdf), которые в течение многих лет были доступны изначально в Ubuntu и, если я помню, всегда отображались правильно и довольно быстро, как хорошо.

http://wkhtmltopdf.org/

Доступно несколько опций, но основной вызов выглядит так:

wkhtmltoimage tmp.html tmp.png