Обрезать этикетки на принтере этикеток до нужного размера в Qt / C ++?

У меня есть принтер этикеток Brother QL700. Я хочу напечатать штрих-код на этом принтере. Я успешно создал штрих-код в формате кода 39 в QString и отобразить этот штрих-код на QLabel->setText(QString), Теперь я хочу напечатать этот штрих-код на принтере этикеток. Я делаю следующие вещи, но это не дает мне желаемого результата.

QList<QPrinterInfo> printerList = QPrinterInfo::availablePrinters() ;
for(int r=0; r<printerList.size();++r)
{
if(printerList[r].printerName() == "Brother_QL_700")
{
QPageSize pageSize(QSizeF(45.0,70.0),QPageSize::Millimeter,"",QPageSize::ExactMatch);
QPrinter PRINTER(printerList[r],QPrinter::PrinterResolution);
PRINTER.setOrientation(QPrinter::Portrait);
PRINTER.setPageSize(pageSize);
PRINTER.setFullPage(true);
PRINTER.setOutputFormat(QPrinter::NativeFormat);

int id = QFontDatabase::addApplicationFont("/Applications/untitledfolder/free3of9.ttf");
QFontDatabase::applicationFontFamilies(id).at(0);
QFont barcodefont;
barcodefont.setFamily("New");
barcodefont.setWeight(QFont::Normal);
barcodefont.setPointSize(10);
QFontMetrics fntm(barcodefont);

QPainter painter2;
if(!painter2.begin(&PRINTER))
return;int x1 = printer1.paperRect().x() + printer1.width()/2 - fntm.width(m_pDeviceInfoWgt->label->text())/2;
int y1 = printer1.paperRect().y();
int w1 = fntm.width(m_pDeviceInfoWgt->label->text());
int h1 = fntm.height();

QRect rect10 = QRect(x1,y1,w1,h1);
painter2.setFont(barcodefont);
painter2.drawText(rect10,Qt::AlignCenter,"Sample_Text");painter2.end();
break;
}
}

Этот код напечатает штрих-код на принтере этикеток, но не обрезает бумагу через 45 мм. Он обрезает бумагу на 297 мм (то есть в формате А4 210×297 мм).

Это означает, что принтер предполагает, что размер бумаги QPrinter::A4 но я дал ему нестандартный размер. Он должен быть напечатан с использованием указанного мной размера, но этого не происходит.

Как правильно настроить принтер для этикеток на использование бумаги указанного размера, чтобы он правильно обрезал напечатанные этикетки?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]