LINUX.ORG.RU

[C/C++] Как отрисовать HTML в картинку


0

1

Причем самое важное - как это сделать без запущенных Х-ов?, если у кого-то есть пример( ссылка на документацию ) использования какой-либо библиотеки для этих целей( webkit, gecko etc. ) без необходимости в запущенном графическом окружении - плз поделитесь

★★★★

Re: [C/C++] Как отрисовать HTML в картинку

http://cutycapt.sourceforge.net/

>как это сделать без запущенных Х-ов?


Xvfb

>без необходимости в запущенном графическом окружении


Вот, снималось без [реальных] иксов, на Xvfb:

http://balancer.ru/img/forums/0811/lor.png
http://balancer.ru/img/forums/0901/djvu-shot.png

KRoN73 ★★★★★ ()

Re: [C/C++] Как отрисовать HTML в картинку

Если интересно, ещё такая же хрень, тоже на WebKit, но уже для трансляции HTML->PDF: http://code.google.com/p/wkhtmltopdf/

KRoN73 ★★★★★ ()

Re: [C/C++] Как отрисовать HTML в картинку

Как-то так.

from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

app=QApplication(sys.argv, False)

w=640
h=480
doc = QTextDocument()
doc.setHtml("<html><head></head><body>hello</body></html>")
pix = QImage(w, h, QImage.Format_RGB32)
painter = QPainter()
painter.begin(pix)
doc.drawContents(painter)
painter.end()
pix.save("1.png")
print "done"
Reset ★★★★★ ()
Ответ на: Re: [C/C++] Как отрисовать HTML в картинку от Reset

Re: [C/C++] Как отрисовать HTML в картинку

>Вызови что-нибудь типа pix.fill(QColor(0x708080))

Так он HTML сам корректно не рисует? (background в CSS задан)?

...

И как его по-русски заставить работать? А то в latin1 рисует.

KRoN73 ★★★★★ ()
Ответ на: Re: [C/C++] Как отрисовать HTML в картинку от KRoN73

Re: [C/C++] Как отрисовать HTML в картинку

> Так он HTML сам корректно не рисует? (background в CSS задан)?

Для сложного html использовать не QDocument, а какой-нибудь QWebView. В документации указано подмножество html, которое обрабатывается QDocument'ом.

> И как его по-русски заставить работать? А то в latin1 рисует.

doc.setHtml(QString.fromUtf8("<html><head></head><body>ййй hello</body></html>"))

Reset ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.