void xxxxxxx::slotFilePrint()
{
QPrinter printer;
if (printer.setup(this))
{
QPainter p;
p.begin(&printer);
QPaintDeviceMetrics metrics((QPaintDevice *)p.device());
int dpiy = metrics.logicalDpiY();
int margin = (int) ( (2/2.54)*dpiy ); // 2 cm margins
QRect view( margin, margin, metrics.width() - 2*margin, metrics.height() - 2*margin );
QSimpleRichText richText(WebBr->text(),
QFont(), WebBr->context(), WebBr->styleSheet(),
WebBr->mimeSourceFactory(), view.height() );
richText.setWidth( &p, view.width() );
int page = 1;
do {
richText.draw( &p, margin, margin, view, colorGroup() );
view.moveBy( 0, view.height() );
p.translate( 0 , -view.height() );
p.drawText( view.right() - p.fontMetrics().width( QString::number( page ) ),
view.bottom() + p.fontMetrics().ascent() + 5, QString::number( page ) );
if ( view.top() - margin >= richText.height() )
break;
printer.newPage();
page++;
} while (TRUE);
p.end();
}
}
Проблемы с печатью из QT
Если я запускаю свою библиотеку из "запускалки", то принтер печатает документ, если библиотека запускается из большой программы (откуда она и должна запускаться), то принтер не хочет печатать ни в какую.
Вот код.
Код: