--===============1599504054==
Content-Type: multipart/alternative;
boundary="----=_Part_50142_11006768.1225294228875"
------=_Part_50142_11006768.1225294228875
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
This code will print the html header and footer.
QRect printer_rect(printer->pageRect());
///Setting up the header and calculating the header size
QTextDocument *document_header = new QTextDocument(this);
document_header->setPageSize(printer_rect.size());
document_header->setHtml(company_header);
QSizeF header_size = document_header->size();
///Setting up the footer and calculating the footer size
QTextDocument *document_footer = new QTextDocument(this);
document_footer->setPageSize(printer_rect.size());
document_footer->setHtml(company_footer);
QSizeF footer_size = document_footer->size();
///Calculating the main document size for one page
QSizeF center_size(printer_rect.width(), (printer->pageRect().height() -
header_size.toSize().height() - footer_size.toSize().height()));
///Setting up the center page
QTextDocument *main_doc = new QTextDocument(this);
main_doc->setHtml(content);
main_doc->setPageSize(center_size);
///Setting up the rectangles for each section.
QRect headerRect = QRect(QPoint(0,0), document_header->size().toSize());
QRect footerRect = QRect(QPoint(0,0), document_footer->size().toSize());
QRect contentRect = QRect(QPoint(0,0), main_doc->size().toSize());
/// Main content rectangle.
QRect currentRect = QRect(QPoint(0,0), center_size.toSize()); ///
Current main content rectangle.
QPainter painter(printer);
int count = 0;
while (currentRect.intersects(contentRect))
{///Loop if the current content rectangle intersects with the main
content rectangle.
///Resetting the painter matrix co ordinate system.
painter.resetMatrix();
///Applying negative translation of painter co-ordinate system by
current main content rectangle top y coordinate.
painter.translate(0, -currentRect.y());
///Applying positive translation of painter co-ordinate system by
header hight.
painter.translate(0, headerRect.height());
///Drawing the center content for current page.
main_doc->drawContents(&painter, currentRect);
///Resetting the painter matrix co ordinate system.
painter.resetMatrix();
///Drawing the header on the top of the page
document_header->drawContents(&painter, headerRect);
///Applying positive translation of painter co-ordinate system to
draw the footer
painter.translate(0, headerRect.height());
painter.translate(0, center_size.height());
document_footer->drawContents(&painter, footerRect);
count++;
///Translating the current rectangle to the area to be printed for
the next page
currentRect.translate(0, currentRect.height());
///Inserting a new page if there is till area left to be printed
if (currentRect.intersects(contentRect))
{
printer->newPage();
}
}
------=_Part_50142_11006768.1225294228875
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
This code will print the html header and footer.
QRect printer_rect(printer->pageRect());
///Setting up the header and calculating the header size
QTextDocument *document_header = new QTextDocument(this);
document_header->setPageSize(printer_rect.size());
document_header->setHtml(company_header);
QSizeF header_size = document_header->size();
///Setting up the footer and calculating the footer size
QTextDocument *document_footer = new QTextDocument(this);
document_footer->setPageSize(printer_rect.size());
document_footer->setHtml(company_footer);
QSizeF footer_size = document_footer->size();
///Calculating the main document size for one page
QSizeF center_size(printer_rect.width(), (printer->pageRect().height() - header_size.toSize().height() - footer_size.toSize().height()));
///Setting up the center page
QTextDocument *main_doc = new QTextDocument(this);
main_doc->setHtml(content);
main_doc->setPageSize(center_size);
///Setting up the rectangles for each section.
QRect headerRect = QRect(QPoint(0,0), document_header->size().toSize());
QRect footerRect = QRect(QPoint(0,0), document_footer->size().toSize());
QRect contentRect = QRect(QPoint(0,0), main_doc->size().toSize()); /// Main content rectangle.
QRect currentRect = QRect(QPoint(0,0), center_size.toSize()); /// Current main content rectangle.
QPainter painter(printer);
int count = 0;
while (currentRect.intersects(contentRect))
{///Loop if the current content rectangle intersects with the main content rectangle.
///Resetting the painter matrix co ordinate system.
painter.resetMatrix();
///Applying negative translation of painter co-ordinate system by current main content rectangle top y coordinate.
painter.translate(0, -currentRect.y());
///Applying positive translation of painter co-ordinate system by header hight.
painter.translate(0, headerRect.height());
///Drawing the center content for current page.
main_doc->drawContents(&painter, currentRect);
///Resetting the painter matrix co ordinate system.
painter.resetMatrix();
///Drawing the header on the top of the page
document_header->drawContents(&painter, headerRect);
///Applying positive translation of painter co-ordinate system to draw the footer
painter.translate(0, headerRect.height());
painter.translate(0, center_size.height());
document_footer->drawContents(&painter, footerRect);
count++;
///Translating the current rectangle to the area to be printed for the next page
currentRect.translate(0, currentRect.height());
///Inserting a new page if there is till area left to be printed
if (currentRect.intersects(contentRect))
{
printer->newPage();
}
}
------=_Part_50142_11006768.1225294228875--
--===============1599504054==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
--===============1599504054==--