Getting the size of pixmap needed to get a paint of a full HTML document
Piotr Szymanski
djurban at pld-dc.org
Fri Aug 12 21:33:07 BST 2005
Hello,
I want to paint a HTML document on a QPixmap, full render of it, I need to
know the size that the QPixmap will have (i need to have this size to specify
the pagesize too), currently Im using:
bool TGenerator::loadDocument( const QString & fileName, QValueVector<
KPDFPage * > & pagesVector )
{
m_file=new CHMFile (fileName);
m_file->ParseAndFillTopicsTree (&m_docSyn);
QPrinter p;
p.setPageSize(static_cast< QPrinter::PageSize
>( KGlobal::locale()->pageSize() ));
p.setFullPage(true);
QPaintDeviceMetrics m(&p);
m_size = QSize(m.width(),m.height());
pagesVector.resize(m_file->m_PageUrl.count());
QMap <QString, int>::ConstIterator it=m_file->m_PageUrl.begin(),
end=m_file->m_PageUrl.end();
KHTMLPart *m_syncGen = new KHTMLPart();
while (it!=end)
{
QString page;
m_file->GetFileContentAsString (page,it.key());
m_syncGen->begin();
m_syncGen->write(page);
m_syncGen->end();
m_syncGen->view()->resize(m_size);
m_syncGen->view()->layout();
int i=it.data()-1;
pagesVector[ i - 1 ] = new KPDFPage (it.data()-1,
m_syncGen->view()->contentsWidth(),
m_syncGen->view()->contentsHeight(),0);
++it;
}
return true;
}
Is there a faster way?
--
Piotr Szymanski
djurban at pld-linux.org
More information about the kfm-devel
mailing list