Название: Принтер чеков
Отправлено: Alucard от Февраль 04, 2012, 03:55
Пытаюсь распечатать используя QPrinter на принтере чеков (Brother QL-500) При выборе размера бумаге в нативном диалоге печатается. Правда по длине ограничивается, отрезает, даже если нужно печатать чек длиннее, хотя длина не указывается вообще. При установке вручную в коде - выдает ошибку - неправильный размер бумаги (выставляем тот же размер что и в нативном диалоге, и не только). При попытке получить размер бумаги выдает отрицательные результаты.
Как запилить печать?
з.ы. натыкался на этом форуме на otpd. Но как-то не въехал, что там - куда и зачем. Возможно автору не затруднит навести на путь истинный, или екзампл какой.
Название: Re: Принтер чеков
Отправлено: cya-st от Февраль 05, 2012, 17:18
Кинь пример как ты выводиш на печать
Название: Re: Принтер чеков
Отправлено: Alucard от Февраль 05, 2012, 17:31
QPrinter printer; printer.setPrinterName("Brother QL-500"); printer.setFullPage(true); QRect pageRect = printer.pageRect(); QSizeF paperSize = pageRect.size();
// printer.setPaperSize(paperSize, QPrinter::Millimeter);
// qDebug() << printer.paperSize(QPrinter::Inch); <<<<<<<<<<<<<<<<<<<<<<<<< отрицательные значение вообще // qDebug() << printer.paperSize(QPrinter::Point); <<<<<<<<<<<<<<<<<<<<<<<< отрицательные значение вообще
qreal left, top, right, bottom; printer.getPageMargins(&left, &top, &right, &bottom, QPrinter::DevicePixel); qDebug() << left << top << right << bottom << "\n";
qDebug() << "Millimeter" << printer.paperSize(QPrinter::Millimeter); qDebug() << "Point" << printer.paperSize(QPrinter::Point); qDebug() << "Inch" << printer.paperSize(QPrinter::Inch); qDebug() << "Pica" << printer.paperSize(QPrinter::Pica); qDebug() << "Didot" << printer.paperSize(QPrinter::Didot); qDebug() << "Cicero" << printer.paperSize(QPrinter::Cicero); qDebug() << "DevicePixel" << printer.paperSize(QPrinter::DevicePixel);
printer.setPaperSize(QSizeF(2.4375, 3.5416), QPrinter::Inch);
qDebug() << "Millimeter" << printer.paperSize(QPrinter::Millimeter); qDebug() << "Point" << printer.paperSize(QPrinter::Point); qDebug() << "Inch" << printer.paperSize(QPrinter::Inch); qDebug() << "Pica" << printer.paperSize(QPrinter::Pica); qDebug() << "Didot" << printer.paperSize(QPrinter::Didot); qDebug() << "Cicero" << printer.paperSize(QPrinter::Cicero); qDebug() << "DevicePixel" << printer.paperSize(QPrinter::DevicePixel);
printer.setPaperSize(QSizeF(234,340), QPrinter::DevicePixel);
qDebug() << "Millimeter" << printer.paperSize(QPrinter::Millimeter); qDebug() << "Point" << printer.paperSize(QPrinter::Point); qDebug() << "Inch" << printer.paperSize(QPrinter::Inch); qDebug() << "Pica" << printer.paperSize(QPrinter::Pica); qDebug() << "Didot" << printer.paperSize(QPrinter::Didot); qDebug() << "Cicero" << printer.paperSize(QPrinter::Cicero); qDebug() << "DevicePixel" << printer.paperSize(QPrinter::DevicePixel);
QPainter painter(&printer); painter.drawRoundedRect(printer.paperRect().adjusted(left, top, -right, -bottom), 3, 3); painter.drawText(printer.pageRect(), Qt::AlignCenter, QString::fromUtf8("OLOLO\nANOTHER LINE\n%1x%2"). arg(paperSize.width()).arg(paperSize.height()));
|