Russian Qt Forum
Ноябрь 22, 2024, 21:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Принтер чеков  (Прочитано 4739 раз)
Alucard
Гость
« : Февраль 04, 2012, 03:55 »

Пытаюсь распечатать используя QPrinter на принтере чеков (Brother QL-500)
При выборе размера бумаге в нативном диалоге печатается. Правда по длине ограничивается, отрезает, даже если нужно печатать чек длиннее, хотя длина не указывается вообще.
При установке вручную в коде - выдает ошибку - неправильный размер бумаги (выставляем тот же размер что и в нативном диалоге, и не только). При попытке получить размер бумаги выдает отрицательные результаты.

Как запилить печать?

з.ы. натыкался на этом форуме на otpd. Но как-то не въехал, что там - куда и зачем. Возможно автору не затруднит навести на путь истинный, или екзампл какой.
Записан
cya-st
Гость
« Ответ #1 : Февраль 05, 2012, 17:18 »

Кинь пример как ты выводиш на печать
Записан
Alucard
Гость
« Ответ #2 : Февраль 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()));


Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 21.