Шаг 311.
Библиотека PyQt5. Печать документов. Предварительный просмотр документов перед печатью. Получение сведений о принтере. Класс QPrinterInfo
На этом шаге мы рассмотрим назначение, форматы конструктора и основные методы этого класса.
Очень полезный класс QPrinterInfo позволяет получить сведения как обо всех установленных в системе принтерах, так и о конкретном принтере, указанном нами. Форматы вызова его конструктора следующие:
<Объект> = QPrinterInfo(<QPrinter>)
<Объект> = QPrinterInfo(<QPrinterInfo>)
Второй формат создает копию экземпляра класса, переданного в параметре. Класс QPrinterInfo поддерживает следующие методы:
- availablePrinters () - возвращает список всех установленных в системе принтеров,
представленных экземплярами класса QPrinterInfo. Метод является статическим;
- availablePrinterNames () - возвращает список имен всех установленных в системе принтеров, заданных строками. Метод является статическим. Пример:
l = QtPrintSupport.QPrinterInfo.availablePrinterNames()
for p in l: print(p)
# Выведет:
# Microsoft XPS Document Writer
# Fax
# Samsung ML-191x252x Series
- defaultPrinter () - возвращает сведения о принтере, используемом по умолчанию, в виде экземпляра класса QPrinterInfo. Метод является статическим;
- defaultPrinterName () - возвращает имя принтера, используемого по умолчанию. Метод является статическим. Пример:
print(QtPrintSupport.QPrinterInfo.defaultPrinterName())
# Выведет: Samsung ML-191x252x Series
- printerInfo (<Имя принтера>) - возвращает экземпляр класса QPrinterInfo, хранящий сведения о принтере с указанным именем. Если такого принтера нет,
возвращается некорректный, "пустой" экземпляр класса. Метод является статическим. Пример:
р = QtPrintSupport.QPrinterInfo.printerInfo("Samsung ML-191x252x Series")
- isNull () - возвращает True, если экземпляр объекта указывает на конкретный установленный в системе принтер, и False, если он является "пустым";
- printerName () - возвращает имя принтера;
- makeAndModel () - возвращает развернутое наименование принтера с указанием его изготовителя, если таковые сведения имеются в наличии, или просто имя принтера - в противном случае;
- description () - возвращает развернутое описание принтера, если таковое имеется в наличии, или просто имя принтера - в противном случае;
- location () - возвращает указание на местоположение принтера, если таковое имеется в наличии, или пустую строку - в противном случае;
- isDefault () - возвращает True, если данный принтер помечен как используемый по умолчанию, и False - в противном случае;
- isRemote () - возвращает True, если это сетевой принтер, и False, если он локальный;
- state () - возвращает текущее состояние принтера в виде значения одного из следующих атрибутов класса QPrinter:
- Idle (или 0) - простаивает;
- Active (или 1) - идет печать;
- Aborted (или 2) - печать была прервана;
- Error (или 3) - возникла ошибка;
- supportedPageSizes () - возвращает список поддерживаемых принтером размеров бумаги, представляемых экземплярами класса QPageSize;
- supportsCustomPageSizes () - возвращает True, если принтер поддерживает указание произвольного размера бумаги, и False - в противном случае;
- supportedResolutions () - возвращает список разрешений, поддерживаемых принтером и измеряемых в точках на дюйм;
- supportedDuplexModes () - возвращает список поддерживаемых принтером режимов двусторонней печати. Каждый элемент списка является значением одного из атрибутов
класса QPrinter, приведенных в описании метода setDuplex() (смотри 299 шаг);
- defaultPageSize () - возвращает установленный по умолчанию размер бумаги в виде экземпляра класса QPageSize:
ps = p.defaultPageSize()
print(ps.name())
s = ps.size(QtGui.QPageSize.Millimeter)
print(s.width() ,"x", s.height())
# Выведет:
# А4
# 210.0 х 297.0
- defaultDuplexMode () - возвращает заданный по умолчанию режим двусторонней печати;
- minimumPhysicalPageSize () и maximumPhysicalPageSize () - возвращают, соответственно, минимальный и максимальный размеры бумаги, поддерживаемые принтером и заданные в виде экземпляров класса QPageSize.
На следующем шаге мы рассмотрим класс QPdfWriter.
Предыдущий шаг
Содержание
Следующий шаг