у меня есть приложение, которое должно печатать бумагу на 3 принтерах, один из которых является локальным, а 2 других используются совместно с сервером, локальный принтер хорош, но для печати на общий принтер у меня есть проблема в Win 10, я должен выбрать один из них по умолчанию принтер для печати. поэтому второй общий принтер не печатает, потому что это не принтер по умолчанию. Я использую это:
QString Services::print(QVariant data , int id){
QString mess = "ss";
QImage img = qvariant_cast<QImage>(data);
QPrinter printer_(QPrinter::HighResolution);
QStringList name;
name=readSettings();
if (name.at(id)= = ""){
return "please enter the printer name ";
}
else{
printer_.setPrinterName(name.at(id));
printer_.setResolution(300);
printer_.setCopyCount(1);
printer_.setDoubleSidedPrinting(false);
printer_.setDuplex(QPrinter::DuplexNone);
printer_.setColorMode(QPrinter::Color);
printer_.setPageSize(QPrinter::A5);
printer_.setPaperSource(QPrinter::Auto);
printer_.setCreator("serverApp");
printer_.setOrientation(QPrinter::Portrait);
printer_.setDocName("factor");
printer_.setOutputFormat(QPrinter::NativeFormat);
if (!printer_.isValid())
return "printer not valid";
QPainter painter(&printer_);
QImage img2 =img.scaled(img.width()*1.65,img.height()*1.7);
painter.drawImage(QPoint(0,0),img2);
qDebug()<<printer_.printerState();
switch(printer_.printerState()){
case QPrinter::Idle:
mess = "don't send";
break;
case QPrinter::Active:
mess = "send";
break;
case QPrinter::Aborted:
mess = "cancell";
break;
case QPrinter::Error:
mess = "error";
break;
}
painter.end();
return mess;
}}
другими словами, есть ли способ установить принтер по умолчанию в Qt?
я понял проблему, для общих принтеров, которые не используются по умолчанию, мы должны установить имя принтера следующим образом: «\\имя компьютера-сервера\настоящее имя принтера на сервере»