Seite 1 von 1
Seitenzahl beim Drucken ausblenden
Verfasst: 27. November 2006 13:30
von lepsai
Hallo Genossen,
hat jemand 'ne Idee, wie man beim Drucken mit QPrinter die Seitenzahlen ausblenden kann?
Verfasst: 27. November 2006 18:05
von upsala
Du meinst im QPrintDialog? Schau dir mal QAbstractPrintDialog::PrintDialogOptions an. (kanns selber gerade nicht testen...)
Verfasst: 27. November 2006 18:38
von lepsai
Nein, über QPrintDialog geht's nicht... Noch Ideen?
Verfasst: 17. August 2007 13:13
von lepsai
Problem ist nicht zu lösen da die API von QTextDocument und eigentlich auch von QPrinter falsch designed ist.
Workaround:
Code: Alles auswählen
QPrinter printer;
// printer setup
QTextDocument* printDocumentPtr = CreateDocumentForPrint(printer);
printDocumentPtr->print(&printer);
delete printDocumentPtr;
// hier die Imlementierung von CreateDocumentForPrint
QTextDocument* MyClass::CreateDocumentToPrint(QPrinter& printer) const
{
// m_report ist vom Typ QTextDocument
QTextDocument* outputPtr = m_report.clone();
qel_ASSERT(outputPtr != NULL);
QPainter p(&printer);
QAbstractTextDocumentLayout* layout = outputPtr->documentLayout();
layout->setPaintDevice(p.device());
const int dpiy = p.device()->logicalDpiY();
const int margin = (int) ((2/2.54)*dpiy); // 2 cm margins
QTextFrameFormat fmt = outputPtr->rootFrame()->frameFormat();
fmt.setMargin(margin);
outputPtr->rootFrame()->setFrameFormat(fmt);
QRectF body = QRectF(0, 0, p.device()->width(), p.device()->height());
QFont font(outputPtr->defaultFont());
font.setPointSize(10); // we define 10pt to be a nice base size for printing
outputPtr->setDefaultFont(font);
outputPtr->setPageSize(body.size());
return outputPtr;
}
Nun funktioniert's!