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 {