Простой механизм макета HTML для преобразования HTML в изображение - PullRequest
17 голосов
/ 04 декабря 2008

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

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

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

Идеи

РЕДАКТИРОВАТЬ: Извините, не забудьте упомянуть, что мой сервер работает под управлением Linux, поэтому решения Windows не помогут. :)

Ответы [ 7 ]

14 голосов
/ 09 декабря 2008

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

http://cutycapt.sourceforge.net/

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

7 голосов
/ 03 октября 2012

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

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

См. http://phantomjs.org

Или см. это

5 голосов
/ 04 декабря 2008

Это может оказаться полезным, если вы работаете в 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 для одного подхода.

2 голосов
/ 04 декабря 2008

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

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

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

0 голосов
/ 28 марта 2015

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

http://wkhtmltopdf.org/

Доступно несколько вариантов, но базовый вызов выглядит следующим образом:

wkhtmltoimage tmp.html tmp.png
0 голосов
/ 04 декабря 2008

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

0 голосов
/ 04 декабря 2008

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

...