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

17

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

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

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

Идеи?

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

задан user27478 04.12.2008 в 20:54
источник

7 ответов

14

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

Ссылка

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

    
ответ дан user27478 09.12.2008 в 19:51
  • Исходный код для этого содержит NO makefile, инструкции NO; и сразу не видно, где получить бинарный файл Linux с их сайта. –  JeffG 08.03.2012 в 14:43
7

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

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

См. Ссылка

Или см. это

    
ответ дан Joe Kuan 03.10.2012 в 11:53
5

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

    
ответ дан Jay 04.12.2008 в 21:03
2

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

Ссылка

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

    
ответ дан Rob 04.12.2008 в 21:03
0

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

    
ответ дан Vilx- 04.12.2008 в 20:58
  • Это хорошее предложение. Ghostscript, например, может конвертировать в различные форматы изображений из исходного файла ps, который, в свою очередь, может быть создан html2ps –  Jay 04.12.2008 в 21:17
0

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

    
ответ дан Alex Shnayder 04.12.2008 в 21:05
  • Обратите внимание, что отправитель работает в Linux, поэтому решение Windows (ActiveX / com) не является полезным в этом случае. –  Jay 04.12.2008 в 21:16
0

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

Ссылка

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

wkhtmltoimage tmp.html tmp.png
    
ответ дан Brandon Rhodes 28.03.2015 в 05:10