/*! Returns a list of all the available Printer Names on this system. It is recommended to use this instead of availablePrinters() as it will be faster on most systems. Note that the list may become outdated if changes are made on the local system or remote print server. Only instantiate required QPrinterInfo instances when needed, and always check for validity before calling. \since 5.3 */ QStringList QPrinterInfo::availablePrinterNames() { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) return ps->availablePrintDeviceIds(); return QStringList(); }
/*! Returns a list of QPrinterInfo objects for all the available printers on this system. It is NOT recommended to use this as creating each printer instance may take a long time, especially if there are remote networked printers, and retained instances may become outdated if changes are made on the local system or remote print server. Use availablePrinterNames() instead and only instantiate printer instances as you need them. */ QList<QPrinterInfo> QPrinterInfo::availablePrinters() { QList<QPrinterInfo> list; QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) { foreach (const QString &id, ps->availablePrintDeviceIds()) list.append(QPrinterInfo(id)); } return list; }
int main(int argc, char *argv[]) { QApplication a(argc, argv); qDebug() << "\n********************************"; qDebug() << "***** QPrintDevice Details *****"; qDebug() << "********************************\n"; QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (!ps) { qDebug() << "Could not load platform plugin!"; return -1; } QString defaultId = ps->defaultPrintDeviceId(); if (defaultId.isEmpty()) qDebug() << "No default printer found"; else qDebug() << "Default Printer ID :" << defaultId; qDebug() << "Available Printer IDs :" << ps->availablePrintDeviceIds() << "\n"; foreach (const QString id, ps->availablePrintDeviceIds()) { QPrintDevice printDevice = ps->createPrintDevice(id); if (printDevice.isValid()) { qDebug() << "===" << printDevice.id() << "===\n"; qDebug() << "Device ID :" << printDevice.id(); qDebug() << "Device Name :" << printDevice.name(); qDebug() << "Device Location :" << printDevice.location(); qDebug() << "Device Make :" << printDevice.makeAndModel(); qDebug() << ""; qDebug() << "isValid :" << printDevice.isValid(); qDebug() << "isDefault :" << printDevice.isDefault(); qDebug() << "isRemote :" << printDevice.isRemote(); qDebug() << ""; qDebug() << "state :" << stateToString(printDevice.state()); qDebug() << ""; qDebug() << "supportsMultipleCopies :" << printDevice.supportsMultipleCopies(); qDebug() << "supportsCollateCopies :" << printDevice.supportsCollateCopies(); qDebug() << ""; qDebug() << "defaultPageSize :" << printDevice.defaultPageSize(); qDebug() << "supportedPageSizes :"; foreach (const QPageSize &page, printDevice.supportedPageSizes()) qDebug() << " " << page << printDevice.printableMargins(page, QPageLayout::Portrait, 300); qDebug() << ""; qDebug() << "supportsCustomPageSizes :" << printDevice.supportsCustomPageSizes(); qDebug() << ""; qDebug() << "minimumPhysicalPageSize :" << printDevice.minimumPhysicalPageSize(); qDebug() << "maximumPhysicalPageSize :" << printDevice.maximumPhysicalPageSize(); qDebug() << ""; qDebug() << "defaultResolution :" << printDevice.defaultResolution(); qDebug() << "supportedResolutions :" << printDevice.supportedResolutions(); qDebug() << ""; qDebug() << "defaultInputSlot :" << printDevice.defaultInputSlot().key << printDevice.defaultInputSlot().name << printDevice.defaultInputSlot().id; qDebug() << "supportedInputSlots :"; foreach (const QPrint::InputSlot &slot, printDevice.supportedInputSlots()) qDebug() << " " << slot.key << slot.name << slot.id; qDebug() << ""; qDebug() << "defaultOutputBin :" << printDevice.defaultOutputBin().key << printDevice.defaultOutputBin().name << printDevice.defaultOutputBin().id; qDebug() << "supportedOutputBins :"; foreach (const QPrint::OutputBin &bin, printDevice.supportedOutputBins()) qDebug() << " " << bin.key << bin.name << bin.id; qDebug() << ""; qDebug() << "defaultDuplexMode :" << duplexToString(printDevice.defaultDuplexMode()); qDebug() << "supportedDuplexModes :"; foreach (QPrint::DuplexMode mode, printDevice.supportedDuplexModes()) qDebug() << " " << duplexToString(mode); qDebug() << ""; qDebug() << "defaultColorMode :" << colorToString(printDevice.defaultColorMode()); qDebug() << "supportedColorModes :"; foreach (QPrint::ColorMode mode, printDevice.supportedColorModes()) qDebug() << " " << colorToString(mode); qDebug() << ""; qDebug() << "supportedMimeTypes :"; foreach (const QMimeType &type, printDevice.supportedMimeTypes()) qDebug() << " " << type.name(); } else {