/*! Returns the printer \a printerName. The return value should be checked using isNull() before being used, in case the named printer does not exist. \since 5.0 \sa isNull() */ QPrinterInfo QPrinterInfo::printerInfo(const QString &printerName) { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (!ps) return QPrinterInfo(); return ps->printerInfo(printerName); }
QList<QPrinterInfo> QPrinterInfo::availablePrinters() { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (!ps) return QList<QPrinterInfo>(); return ps->availablePrinters(); }
QPrinterInfo QPrinterInfo::defaultPrinter() { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (!ps) return QPrinterInfo(); return ps->defaultPrinter(); }
/*! Returns the current default printer name. \since 5.3 */ QString QPrinterInfo::defaultPrinterName() { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) return ps->defaultPrintDeviceId(); return QString(); }
/*! 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(); }
QPrinterInfoPrivate::QPrinterInfoPrivate(const QString &id) { if (!id.isEmpty()) { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) m_printDevice = ps->createPrintDevice(id); } }
/*! Constructs a QPrinterInfo object from \a printer. */ QPrinterInfo::QPrinterInfo(const QPrinter &printer) : d_ptr(&QPrinterInfoPrivate::shared_null) { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) { QPrinterInfo pi = ps->printerInfo(printer.printerName()); d_ptr.reset(new QPrinterInfoPrivate(*pi.d_ptr)); } }
/*! 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; }
void QPageSetupWidget::initPageSizes() { m_blockSignals = true; m_ui.pageSizeCombo->clear(); if (m_outputFormat == QPrinter::NativeFormat && !m_printerName.isEmpty()) { QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) { QPrintDevice printDevice = ps->createPrintDevice(m_printerName); foreach (const QPageSize &pageSize, printDevice.supportedPageSizes()) { m_ui.pageSizeCombo->addItem(pageSize.name(), QVariant::fromValue(pageSize.id())); } if (m_ui.pageSizeCombo->count() > 0 && printDevice.supportsCustomPageSizes()) { m_ui.pageSizeCombo->addItem(tr("Custom"), QVariant::fromValue(QPageSize::Custom)); m_blockSignals = false; return; } } }
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 {