Print text without "QTextDocument"
-
I try to print labels on a Zebra from Qt
I use ZPL code to send directly to a printer "Generic / Text Only".For information, I noticed that:
. When I print from Notepad (Windows): Printing is good
. When I print from WordPad (Windows): Printing is the same as with Qt (add spaces)I think there must be something wrong with the layout engine (wordwrap? Text "formatted")
So when I use this way QTextDocument
@ QTextDocument doc ("ZPL Command");
Doc.print (& printer);@Spaces are added in all text labels
Will it have a way to print "as notepad"?NB: Same problem as: http://qt-project.org/forums/viewthread/36994/
-
Hi,
You could try with QPainter directly. Have a look at the "Printing with Qt" chapter of Qt's documentation.
Hope it helps
-
Hi,
Thanks for the reply, I found the time to test with QPainter, but nothing print. Is there an error in this code?
@QWebElement e = frame->findFirstElement("...");
// ....
QPainter painter;
painter.begin(&printer);
painter.drawText(QPoint(50, 50), e.toPlainText());
painter.end();@Otherwise, I partially solved the problem by setting the font
With default font, many spaces are added. When I set it to "Courier" 7pt, and with CR before each text, most problems are solved:@QWebElement e = frame->findFirstElement("...");
// ....
QTextDocument doc;
QFont newFont(doc.defaultFont());
newFont.setFamily("Courier New");
newFont.setPointSize(7);
doc.setDefaultFont(newFont);
doc.setPlainText(e.toPlainText());
doc.print(&printer);@But it would certainly be better with QPainter
-
Are you sure you have a valid printer ?
-
Yes, it's the same for QPainter & QTextDocument
-
How do you create the printer ?
-
@QPrinter printer(QPrinter::HighResolution);
printer.setPrinterName(printerName);
printer.setPageMargins(0,0,0,0,QPrinter::Millimeter);@