Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1




matka przelozona
Cała sprawa zaczeła się od tego że chciałam usunąć numeracje stron z moich dokumentów :/ ale ze względu że nie zaimplementowano tego w normalny sposób musiałam sobie poradzić inaczej więc napisałam takiego potwora.
zmienna html zawiera powiedzmy jakąś tabelkę i jeśli drukowałam za pomocą metody print (obiekt QTextDocument) wszystko było ok. Ale jak zabrałam się za QPainter i drukowanie to jakoś nie działa to poprawnie jeśli chodzi o zawijanie tekstu w tabeli
QTextDocument doc;
doc.setHtml(css()+html);
qDebug() << printer->pageRect().width();
QRect innerRect = printer->pageRect();
innerRect.setTop(innerRect.top() + 20);
innerRect.setBottom(innerRect.bottom() - 30);
QRect contentRect = QRect(QPoint(0,0), doc.size().toSize());
QRect currentRect = QRect(QPoint(0,0), innerRect.size());
QPainter painter(printer);
int count = 0;
painter.save();
painter.translate(0, 30);
while (currentRect.intersects(contentRect))
{
doc.drawContents(&painter, currentRect);
count++;
currentRect.translate(0, currentRect.height());
painter.restore();
painter.drawText(10, 10, QString(""));
painter.drawText(10, printer->pageRect().bottom() - 10, QString(""));
painter.save();
painter.translate(0, -currentRect.height() * count + 30);
if (currentRect.intersects(contentRect))
printer->newPage();
}
painter.restore();
painter.end();Offline



Administrator




A czemu nie wrócisz do QTextDocument skoro działało?
Offline




matka przelozona



Administrator




Ahm, to jakiś bug - http://bugreports.qt.nokia.com/browse/QTBUG-1688 . Może już szukałaś i to widziałaś:
http://www.qtcentre.org/threads/37861-Help-Remove-p … 5512642202362
http://stackoverflow.com/questions/2590668/customiz … qtextdocument
Coś takiego nie pomaga? W sumie tak tylko się zainteresowałem bo nie znam QT, ale nie zaszkodzi poznać.
Offline




matka przelozona
Dzięki wielkie za pomoc faktycznie zasugerowana przez Ciebie metoda jest aż do bólu prosta :] (czasami lepiej jak ktoś inny zerknie na dane zagadnienie)
QSizeF pSize;
pSize.setWidth(printer->width());
pSize.setHeight(printer->height());
QTextDocument doc;
doc.setPageSize(pSize);
doc.setHtml(css()+html);
doc.print(printer);PS tego buga znalazłam chwile po tym jak napisałam posta tego 2 :]
Offline
Strony: 1