--===============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==--