i working on test application printing in ubuntu 14.04.3 lts cups 1.7.2 , qt 5.5.1 opensource 64bit. i've added printer driver in cups , test page printed ok. now, app consists of qtextedit , qpushbutton, pressed() signal triggers following slot:
void uecentralwidget::uesendtexttoprinter() { // qstringlist availableprintersnames=qprinterinfo::availableprinternames(); // for(int indexprintername=0; indexprintername<availableprintersnames.size(); indexprintername++) // { // qdebug() << q_func_info // << availableprintersnames.at(indexprintername); // } // qdebug() << q_func_info << "text print: " << this->ueprintertexteditor()->document()->toplaintext(); qlist<qprinterinfo> availableprinters=qprinterinfo::availableprinters(); for(int indexprinter=0; indexprinter<availableprinters.size(); indexprinter++) { // qdebug() << q_func_info // << availableprinters.at(indexprinter).makeandmodel(); if(availableprinters.at(indexprinter).makeandmodel().contains("pos58")) { qdebug() << q_func_info << "printer found"; qprinter printer(availableprinters.at(indexprinter)); qdebug() << q_func_info << printer.pagelayout().fullrect(); qpainter printerpainter(&printer); qdebug() << q_func_info << printerpainter.fontinfo().family() << printerpainter.fontinfo().pixelsize() << printerpainter.fontinfo().pointsize(); if(printerpainter.begin(&printer)) { printerpainter.drawtext(100, 100, this->ueprintertexteditor()->document()->toplaintext()); } printerpainter.end(); } // if } // } when slot executes, printer job added cups queue, means printer found, however, printer feeds printer , no text printed. still missing?
you don't need printerpainter.begin(&printer) or printerpainter.end().
i don't know why fixes you, if guess might because explicitly calling printerpainter.end() prematurely completes paint operation before drawing done.
Comments
Post a Comment