From 7fd5fe17c2b9fc9252596c0839de90363b8ad632 Mon Sep 17 00:00:00 2001 From: Renato Araujo Oliveira Filho Date: Tue, 19 Dec 2017 09:24:51 -0300 Subject: Fix print to a printer instance Make sure to use the printer original name as 'cupsPrintFile' function argument Testing: - Create a instance of your print with lpoptions - Try print a document using the new instance of the printer - Check if the instance properties was respected Change-Id: I884b641d1871fe04c7b119c82d4edb4aa41db2f5 Reviewed-by: Albert Astals Cid Reviewed-by: Frederik Gladhorn --- src/plugins/printsupport/cups/qcupsprintengine.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/printsupport/cups/qcupsprintengine.cpp b/src/plugins/printsupport/cups/qcupsprintengine.cpp index 6a4eecb06d..287ab4b27a 100644 --- a/src/plugins/printsupport/cups/qcupsprintengine.cpp +++ b/src/plugins/printsupport/cups/qcupsprintengine.cpp @@ -239,9 +239,12 @@ void QCupsPrintEnginePrivate::closePrintDevice() cupsOptStruct.append(opt); } - // Print the file. + // Print the file + // Cups expect the printer original name without instance, the full name is used only to retrieve the configuration + const auto parts = printerName.splitRef(QLatin1Char('/')); + const auto printerOriginalName = parts.at(0); cups_option_t* optPtr = cupsOptStruct.size() ? &cupsOptStruct.first() : 0; - cupsPrintFile(printerName.toLocal8Bit().constData(), tempFile.toLocal8Bit().constData(), + cupsPrintFile(printerOriginalName.toLocal8Bit().constData(), tempFile.toLocal8Bit().constData(), title.toLocal8Bit().constData(), cupsOptStruct.size(), optPtr); QFile::remove(tempFile); -- cgit v1.2.3