Класс QPrinter
Класс QPrinter — это устройство отрисовки, которое печатает на принтере. Подробнее...
| Заголовок: | #include <QPrinter> |
| qmake: | QT += printsupport |
| Наследуется от: | QPagedPaintDevice |
Примечание: Все функции в этом классе являются повторно-входными.
Типы общего доступа
| Перечисление | РежимЦвета { Цвет, ГрадацииСерого } |
| Перечисление | РежимДвустороннейПечати { ДвухсторонняяПечатьОтсутствует, ДвухсторонняяПечатьАвто, ДвухсторонняяПечатьПоДолгойСтороне, ДвухсторонняяПечатьПоКороткимСтороне } |
| Перечисление | Ориентация { Портрет, Альбом } |
| Перечисление | ФорматВывода { СобственныйФормат, PdfФормат } |
| Перечисление | ПорядокСтраниц { ПерваяСтраницаСначала, ПоследняяСтраницаСначала } |
| Перечисление | РазмерБумаги { A0, A1, A2, A3, ..., ПоследнийРазмерБумаги } |
| Перечисление | ИсточникБумаги { Автоматический, Кассета, Конверт, КонвертРучной, ..., ПоследнийИсточникБумаги } |
| Перечисление | ДиапазонПечати { ВсеСтраницы, Выделение, ДиапазонСтраниц, ТекущаяСтраница } |
| Перечисление | РежимПринтера { РазрешениеЭкрана, РазрешениеПринтера, ВысокоеРазрешение } |
| Перечисление | СостояниеПринтера { ПростойРежим, Активный, Прерван, Ошибка } |
| Перечисление | ЕдиницаИзмерения { Миллиметр, Пункт, Дюйм, Пика, ..., ПикселУстройства } |
Функции общего доступа
| QPrinter(PrinterMode mode = ScreenResolution) | |
| QPrinter(const QPrinterInfo &printer, PrinterMode mode = ScreenResolution) | |
| ~QPrinter() | |
| bool | abort() |
| bool | collateCopies() const |
| ColorMode | colorMode() const |
| int | copyCount() const |
| QString | creator() const |
| QString | docName() const |
| DuplexMode | duplex() const |
| bool | fontEmbeddingEnabled() const |
| int | fromPage() const |
| bool | fullPage() const |
| bool | isValid() const |
| QString | outputFileName() const |
| OutputFormat | outputFormat() const |
| QPageLayout | pageLayout() const |
| PageOrder | pageOrder() const |
| QRectF | pageRect(Unit unit) const |
| QRectF | paperRect(Unit unit) const |
| PaperSource | paperSource() const |
| QPrintEngine * | printEngine() const |
| QString | printProgram() const |
| PrintRange | printRange() const |
| QString | printerName() const |
| QString | printerSelectionOption() const |
| PrinterState | printerState() const |
| int | resolution() const |
| void | setCollateCopies(bool collate) |
| void | setColorMode(ColorMode newColorMode) |
| void | setCopyCount(int count) |
| void | setCreator(const QString &creator) |
| void | setDocName(const QString &name) |
| void | setDuplex(DuplexMode duplex) |
| void | setFontEmbeddingEnabled(bool enable) |
| void | setFromTo(int from, int to) |
| void | setFullPage(bool fp) |
| void | setOutputFileName(const QString &fileName) |
| void | setOutputFormat(OutputFormat format) |
| bool | setPageLayout(const QPageLayout &newLayout) |
| bool | setPageMargins(const QMarginsF &margins) |
| bool | setPageMargins(const QMarginsF &margins, QPageLayout::Unit units) |
| void | setPageOrder(PageOrder pageOrder) |
| bool | setPageOrientation(QPageLayout::Orientation orientation) |
| bool | setPageSize(const QPageSize &pageSize) |
| void | setPaperSource(PaperSource source) |
| void | setPrintProgram(const QString &printProg) |
| void | setPrintRange(PrintRange range) |
| void | setPrinterName(const QString &name) |
| void | setPrinterSelectionOption(const QString &option) |
| void | setResolution(int dpi) |
| QList<PaperSource> | supportedPaperSources() const |
| QList<int> | supportedResolutions() const |
| bool | supportsMultipleCopies() const |
| int | toPage() const |
Реализованные публичные функции
| virtual bool | newPage() |
| virtual QPaintEngine * | paintEngine() const |
(obsolete) virtual void |
setMargins(const Margins &m) |
(obsolete) virtual void |
setPageSize(PageSize newPageSize) |
(obsolete) virtual void |
setPageSizeMM(const QSizeF &size) |
- 13 public functions inherited from QPagedPaintDevice
- 14 public functions inherited from QPaintDevice
Защищенные функции
| void | setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine) |
- 1 защищенная функция, унаследованная от QPaintDevice
Подробное описание
Класс QPrinter — это устройство для рисования на принтере.
Это устройство представляет собой серию страниц печатного вывода и используется почти так же, как и другие устройства рисования, такие как QWidget и QPixmap. Предоставляется набор дополнительных функций для управления функциями, специфичными для устройства, такими как ориентация и разрешение, и для перехода по страницам документа во время его генерации.
При печати напрямую на принтер в Windows или macOS, QPrinter использует встроенные драйверы принтера. В X11 QPrinter использует Common Unix Printing System (CUPS) для отправки PDF-вывода на принтер. В качестве альтернативы, функцию printProgram() можно использовать для указания команды или утилиты вместо системных значений по умолчанию.
Обратите внимание, что установка параметров, таких как размер бумаги и разрешение, на недоступном принтере не определена. Вы можете использовать QPrinter::isValid() для проверки этого перед изменением каких-либо параметров.
QPrinter поддерживает ряд параметров, большинство из которых могут быть изменены конечным пользователем через диалог печати. В общем случае, QPrinter передает эти функции базовому QPrintEngine.
Наиболее важные параметры:
- setOrientation() сообщает QPrinter, какую ориентацию страницы использовать.
- setPaperSize() сообщает QPrinter, какой размер бумаги ожидать от принтера.
- setResolution() сообщает QPrinter, какое разрешение (точек на дюйм, DPI) вы хотите получить от принтера.
- setFullPage() сообщает QPrinter, хотите ли вы работать со всей страницей или только с частью, которую может напечатать принтер.
- setCopyCount() сообщает QPrinter, сколько копий документа следует напечатать.
Многие из этих функций можно вызывать только перед фактической печатью (т. е. до вызова QPainter::begin() ). Это обычно имеет смысл, потому что, например, изменить количество копий невозможно, когда вы уже напечатали половину документа. Также есть некоторые настройки, которые пользователь устанавливает (через диалог принтера), и которые приложения должны соблюдать. Подробнее см. в документации QAbstractPrintDialog.
При вызове QPainter::begin(), QPrinter, на котором он работает, подготавливается к новой странице, что позволяет QPainter сразу же начать рисование первой страницы документа. После того, как первая страница будет нарисована, можно вызвать newPage() для запроса новой пустой страницы для рисования или QPainter::end() для завершения печати. Вторая страница и все последующие страницы подготавливаются с помощью вызова newPage() перед их рисованием.
Первой странице документа не требуется предшествовать вызов newPage(). Вам нужно вызвать newPage() только после QPainter::begin() если необходимо вставить пустую страницу в начало печатного документа. Аналогично, вызов newPage() после того, как напечатана последняя страница документа, приведет к добавлению пустой страницы в конец печатного документа.
Если вы хотите прервать задание печати, abort() сделает все возможное, чтобы остановить печать. Он может отменить все задание или только его часть.
Поскольку QPrinter может печатать на любой подклассе QPrintEngine, можно расширить поддержку печати, чтобы она охватывала новые типы печатающих подсистем, наследовавшись от QPrintEngine и переопределив его интерфейс.
См. также QPrintDialog и Qt Print Support.
Документация по типам членов
перечисление QPrinter::ColorMode
Этот тип перечисления используется для указания, должен ли QPrinter печатать в цвете или нет.
| Константа | Значение | Описание |
|---|---|---|
QPrinter::Color |
1 |
печатает в цвете, если доступно, в противном случае в оттенках серого. |
QPrinter::GrayScale |
0 |
печатает в оттенках серого, даже на цветных принтерах. |
перечисление QPrinter::DuplexMode
Это перечисление используется для указания, будет ли печать выполняться на одной или обеих сторонах каждого листа бумаги (односторонний или двусторонний печатный вывод).
| Константа | Значение | Описание |
|---|---|---|
QPrinter::DuplexNone |
0 |
Только односторонняя печать. |
QPrinter::DuplexAuto |
1 |
Используются настройки принтера по умолчанию для определения использования двусторонней печати. |
QPrinter::DuplexLongSide |
2 |
Для печати используются обе стороны каждого листа бумаги. Бумага переворачивается по длинной стороне перед печатью второй стороны. |
QPrinter::DuplexShortSide |
3 |
Для печати используются обе стороны каждого листа бумаги. Бумага переворачивается по короткой стороне перед печатью второй стороны. |
Это перечисление было введено или изменено в Qt 4.4.
перечисление QPrinter::Orientation
Этот тип перечисления (не путать с Orientation) используется для указания ориентации каждой страницы.
| Константа | Значение | Описание |
|---|---|---|
QPrinter::Portrait |
0 |
высота страницы больше ее ширины. |
QPrinter::Landscape |
1 |
ширина страницы больше ее высоты. |
Этот тип взаимодействует с QPrinter::PaperSize и QPrinter::setFullPage() для определения окончательного размера страницы, доступной приложению.
перечисление QPrinter::OutputFormat
Перечисление OutputFormat используется для описания формата, который QPrinter должен использовать для печати.
| Константа | Значение | Описание |
|---|---|---|
QPrinter::NativeFormat |
0 |
QPrinter будет печатать вывод с помощью метода, определенного платформой, на которой он работает. Этот режим является режимом по умолчанию при печати напрямую на принтер. |
QPrinter::PdfFormat |
1 |
QPrinter сгенерирует вывод в виде searchable PDF-файла. Этот режим является режимом по умолчанию при печати в файл. |
См. также outputFormat(), setOutputFormat() и setOutputFileName().
перечисление QPrinter::PageOrder
Этот тип перечисления используется QPrinter для указания приложениям, как печатать.
| Константа | Значение | Описание |
|---|---|---|
QPrinter::FirstPageFirst |
0 |
напечатать страницу с наименьшим номером первой. |
QPrinter::LastPageFirst |
1 |
напечатать страницу с наибольшим номером первой. |
перечисление QPrinter::PaperSize
Этот тип перечисления определяет размер бумаги, который QPrinter должен использовать. QPrinter не проверяет, доступен ли размер бумаги; он просто использует эту информацию вместе с QPrinter::Orientation и QPrinter::setFullPage() для определения печатаемой области.
Определенные размеры (с setFullPage(true)):
| Постоянная | Значение | Описание |
|---|---|---|
QPrinter::A0 |
5 |
841 x 1189 мм |
QPrinter::A1 |
6 |
594 x 841 мм |
QPrinter::A2 |
7 |
420 x 594 мм |
QPrinter::A3 |
8 |
297 x 420 мм |
QPrinter::A4 |
0 |
210 x 297 мм, 8.26 x 11.69 дюймов |
QPrinter::A5 |
9 |
148 x 210 мм |
QPrinter::A6 |
10 |
105 x 148 мм |
QPrinter::A7 |
11 |
74 x 105 мм |
QPrinter::A8 |
12 |
52 x 74 мм |
QPrinter::A9 |
13 |
37 x 52 мм |
QPrinter::B0 |
14 |
1000 x 1414 мм |
QPrinter::B1 |
15 |
707 x 1000 мм |
QPrinter::B2 |
17 |
500 x 707 мм |
QPrinter::B3 |
18 |
353 x 500 мм |
QPrinter::B4 |
19 |
250 x 353 мм |
QPrinter::B5 |
1 |
176 x 250 мм, 6.93 x 9.84 дюймов |
QPrinter::B6 |
20 |
125 x 176 мм |
QPrinter::B7 |
21 |
88 x 125 мм |
QPrinter::B8 |
22 |
62 x 88 мм |
QPrinter::B9 |
23 |
33 x 62 мм |
QPrinter::B10 |
16 |
31 x 44 мм |
QPrinter::C5E |
24 |
163 x 229 мм |
QPrinter::Comm10E |
25 |
105 x 241 мм, U.S. Common 10 конверт |
QPrinter::DLE |
26 |
110 x 220 мм |
QPrinter::Executive |
4 |
7.5 x 10 дюймов, 190.5 x 254 мм |
QPrinter::Folio |
27 |
210 x 330 мм |
QPrinter::Ledger |
28 |
431.8 x 279.4 мм |
QPrinter::Legal |
3 |
8.5 x 14 дюймов, 215.9 x 355.6 мм |
QPrinter::Letter |
2 |
8.5 x 11 дюймов, 215.9 x 279.4 мм |
QPrinter::Tabloid |
29 |
279.4 x 431.8 мм |
QPrinter::Custom |
30 |
Неизвестный или определенный пользователем размер. |
QPrinter::A10 |
31 |
|
QPrinter::A3Extra |
32 |
|
QPrinter::A4Extra |
33 |
|
QPrinter::A4Plus |
34 |
|
QPrinter::A4Small |
35 |
|
QPrinter::A5Extra |
36 |
|
QPrinter::B5Extra |
37 |
|
QPrinter::JisB0 |
38 |
|
QPrinter::JisB1 |
39 |
|
QPrinter::JisB2 |
40 |
|
QPrinter::JisB3 |
41 |
|
QPrinter::JisB4 |
42 |
|
QPrinter::JisB5 |
43 |
|
QPrinter::JisB6 |
44 |
, |
QPrinter::JisB7 |
45 |
|
QPrinter::JisB8 |
46 |
|
QPrinter::JisB9 |
47 |
|
QPrinter::JisB10 |
48 |
|
QPrinter::AnsiA |
Letter |
= Письмо |
QPrinter::AnsiB |
Ledger |
= Журнал |
QPrinter::AnsiC |
49 |
|
QPrinter::AnsiD |
50 |
|
QPrinter::AnsiE |
51 |
|
QPrinter::LegalExtra |
52 |
|
QPrinter::LetterExtra |
53 |
|
QPrinter::LetterPlus |
54 |
|
QPrinter::LetterSmall |
55 |
|
QPrinter::TabloidExtra |
56 |
|
QPrinter::ArchA |
57 |
|
QPrinter::ArchB |
58 |
|
QPrinter::ArchC |
59 |
|
QPrinter::ArchD |
60 |
|
QPrinter::ArchE |
61 |
|
QPrinter::Imperial7x9 |
62 |
|
QPrinter::Imperial8x10 |
63 |
|
QPrinter::Imperial9x11 |
64 |
|
QPrinter::Imperial9x12 |
65 |
|
QPrinter::Imperial10x11 |
66 |
|
QPrinter::Imperial10x13 |
67 |
|
QPrinter::Imperial10x14 |
68 |
|
QPrinter::Imperial12x11 |
69 |
|
QPrinter::Imperial15x11 |
70 |
|
QPrinter::ExecutiveStandard |
71 |
QPrinter::Note |
72 |
|
QPrinter::Quarto |
73 |
|
QPrinter::Statement |
74 |
|
QPrinter::SuperA |
75 |
|
QPrinter::SuperB |
76 |
|
QPrinter::Postcard |
77 |
|
QPrinter::DoublePostcard |
78 |
|
QPrinter::Prc16K |
79 |
|
QPrinter::Prc32K |
80 |
|
QPrinter::Prc32KBig |
81 |
|
QPrinter::FanFoldUS |
82 |
|
QPrinter::FanFoldGerman |
83 |
|
QPrinter::FanFoldGermanLegal |
84 |
|
QPrinter::EnvelopeB4 |
85 |
|
QPrinter::EnvelopeB5 |
86 |
|
QPrinter::EnvelopeB6 |
87 |
|
QPrinter::EnvelopeC0 |
88 |
|
QPrinter::EnvelopeC1 |
89 |
|
QPrinter::EnvelopeC2 |
90 |
|
QPrinter::EnvelopeC3 |
91 |
|
QPrinter::EnvelopeC4 |
92 |
|
QPrinter::EnvelopeC5 |
C5E |
= C5E |
QPrinter::EnvelopeC6 |
93 |
|
QPrinter::EnvelopeC65 |
94 |
|
QPrinter::EnvelopeC7 |
95 |
|
QPrinter::EnvelopeDL |
DLE |
= DLE |
QPrinter::Envelope9 |
96 |
|
QPrinter::Envelope10 |
Comm10E |
= Comm10E |
QPrinter::Envelope11 |
97 |
|
QPrinter::Envelope12 |
98 |
|
QPrinter::Envelope14 |
99 |
|
QPrinter::EnvelopeMonarch |
100 |
|
QPrinter::EnvelopePersonal |
101 |
|
QPrinter::EnvelopeChou3 |
102 |
|
QPrinter::EnvelopeChou4 |
103 |
|
QPrinter::EnvelopeInvite |
104 |
|
QPrinter::EnvelopeItalian |
105 |
|
QPrinter::EnvelopeKaku2 |
106 |
|
QPrinter::EnvelopeKaku3 |
107 |
|
QPrinter::EnvelopePrc1 |
108 |
|
QPrinter::EnvelopePrc2 |
109 |
|
QPrinter::EnvelopePrc3 |
110 |
|
QPrinter::EnvelopePrc4 |
111 |
|
QPrinter::EnvelopePrc5 |
112 |
|
QPrinter::EnvelopePrc6 |
113 |
|
QPrinter::EnvelopePrc7 |
114 |
|
QPrinter::EnvelopePrc8 |
115 |
|
QPrinter::EnvelopePrc9 |
116 |
|
QPrinter::EnvelopePrc10 |
117 |
|
QPrinter::EnvelopeYou4 |
118 |
|
QPrinter::LastPageSize |
EnvelopeYou4 |
= EnvelopeYou4 |
С setFullPage(false) (по умолчанию), метрики будут немного меньше; насколько — зависит от используемого принтера.
По историческим причинам QPageSize::Executive не совпадает со стандартными размерами Postscript и Windows Executive. Используйте QPageSize::ExecutiveStandard вместо этого.
Стандартный размер Postscript QPageSize::Folio отличается от размера Windows DMPAPER_FOLIO. Используйте стандартный размер Postscript QPageSize::FanFoldGermanLegal, если необходимо.
Этот перечисление был введён или изменён в Qt 4.4.
enum QPrinter::PaperSource
Этот тип перечисления указывает, какой источник бумаги должен использовать QPrinter. QPrinter не проверяет, доступен ли источник бумаги; он просто использует эту информацию для попытки установить источник бумаги. Будет ли он устанавливать источник бумаги, зависит от того, есть ли у принтера этот конкретный источник.
Предупреждение: В настоящее время реализовано только для Windows.
| Постоянная | Значение | Описание |
|---|---|---|
QPrinter::Auto |
6 |
|
QPrinter::Cassette |
11 |
|
QPrinter::Envelope |
4 |
|
QPrinter::EnvelopeManual |
5 |
|
QPrinter::FormSource |
12 |
|
QPrinter::LargeCapacity |
10 |
|
QPrinter::LargeFormat |
9 |
|
QPrinter::Lower |
1 |
|
QPrinter::MaxPageSource |
13 |
Устарело, используйте LastPaperSource вместо этого |
QPrinter::Middle |
2 |
|
QPrinter::Manual |
3 |
|
QPrinter::OnlyOne |
0 |
|
QPrinter::Tractor |
7 |
|
QPrinter::SmallFormat |
8 |
|
QPrinter::Upper |
OnlyOne |
|
QPrinter::CustomSource |
14 |
Источник бумаги, определённый принтером, неизвестный Qt |
QPrinter::LastPaperSource |
CustomSource |
Наибольшее допустимое значение PaperSource, в настоящее время CustomSource |
enum QPrinter::PrintRange
Используется для указания опции выбора диапазона печати.
| Постоянная | Значение | Описание |
|---|---|---|
QPrinter::AllPages |
0 |
Все страницы должны быть напечатаны. |
QPrinter::Selection |
1 |
Должна быть напечатана только выделенная область. |
QPrinter::PageRange |
2 |
Должен быть напечатан указанный диапазон страниц. |
QPrinter::CurrentPage |
3 |
Должна быть напечатана только текущая страница. |
См. такжеsetPrintRange(), printRange() и QAbstractPrintDialog::PrintRange.
enum QPrinter::PrinterMode
Этот перечисление описывает режим работы принтера. В основном задает определённое разрешение и режим работы.
| Постоянная | Значение | Описание |
|---|---|---|
QPrinter::ScreenResolution |
0 |
Устанавливает разрешение устройства печати на разрешение экрана. Это имеет большое преимущество, так как результаты, полученные при рисовании на принтере, будут более или менее точно соответствовать видимым результатам на экране. Это самый простой в использовании режим, так как метрики шрифтов на экране и на принтере одинаковы. Это значение по умолчанию. ScreenResolution даёт результат более низкого качества, чем HighResolution, и должен использоваться только для черновиков. |
QPrinter::PrinterResolution |
1 |
Это устаревшее значение. Оно эквивалентно ScreenResolution в Unix и HighResolution в Windows и Mac. Из-за различий между ScreenResolution и HighResolution, использование этого значения может привести к непортному коду принтера. |
QPrinter::HighResolution |
2 |
В Windows устанавливает разрешение принтера на то, которое определено для используемого принтера. При печати в PDF устанавливает разрешение PDF-драйвера на 1200 точек на дюйм. |
Примечание: При рендеринге текста на устройстве QPrinter важно понимать, что размер текста, указанный в пунктах, независим от разрешения, заданного для самого устройства. Поэтому может быть полезно указывать размер шрифта в пикселях при объединении текста с графикой, чтобы обеспечить ожидаемые относительные размеры.
enum QPrinter::PrinterState
| Постоянная | Значение |
|---|---|
QPrinter::Idle |
0 |
QPrinter::Active |
1 |
QPrinter::Aborted |
2 |
QPrinter::Error |
3 |
enum QPrinter::Unit
Этот тип перечисления используется для указания единицы измерения для размеров страниц и бумаги.
| Постоянная | Значение |
|---|---|
QPrinter::Millimeter |
0 |
QPrinter::Point |
1 |
QPrinter::Inch |
2 |
QPrinter::Pica |
3 |
QPrinter::Didot |
4 |
QPrinter::Cicero |
5 |
QPrinter::DevicePixel |
6 |
Обратите внимание на различие между Point и DevicePixel. Единица Point определяется как 1/72 дюйма, а единица DevicePixel зависит от разрешения и основана на фактических пикселях или точках на принтере.
Это перечисление было введено или изменено в Qt 4.4.
Документация по функциям-членам
QPrinter::QPrinter(PrinterMode mode = ScreenResolution)
Создаёт новый объект принтера с заданным mode.
QPrinter::QPrinter(const QPrinterInfo &printer, PrinterMode mode = ScreenResolution)
Создаёт новый объект принтера с заданным printer и mode.
Эта функция была введена в Qt 4.4.
QPrinter::~QPrinter()
Удаляет объект принтера и освобождает все выделенные ресурсы. Если принтер уничтожается во время выполнения задания печати, это может или не может повлиять на задание печати.
bool QPrinter::abort()
Прерывает текущую операцию печати. Возвращает true если операция печати была успешно прервана и printerState() вернёт QPrinter::Aborted; в противном случае возвращает false.
Не всегда возможно прервать задание печати. Например, все данные переданы на принтер, но принтер не может или не захочет отменить задание по запросу.
bool QPrinter::collateCopies() const
Возвращает true если сортировка включена при выборе нескольких копий. Возвращает false если она выключена при выборе нескольких копий. При выключенной сортировке печать каждой отдельной страницы будет повторяться количеством numCopies() раз, прежде чем начнется следующая страница. При включённой сортировке все страницы печатаются перед началом следующей копии этих страниц.
Эта функция была введена в Qt 4.1.
См. такжеsetCollateCopies().
ColorMode QPrinter::colorMode() const
Возвращает текущий режим цвета.
См. такжеsetColorMode().
int QPrinter::copyCount() const
Возвращает количество копий, которые будут напечатаны. Значение по умолчанию равно 1.
Эта функция была введена в Qt 4.7.
См. такжеsetCopyCount() и supportsMultipleCopies().
QString QPrinter::creator() const
Возвращает имя приложения, которое создало документ.
См. такжеsetCreator().
QString QPrinter::docName() const
Возвращает имя документа.
См. такжеsetDocName() и QPrintEngine::PrintEnginePropertyKey.
DuplexMode QPrinter::duplex() const
Возвращает текущий режим двусторонней печати.
Эта функция была введена в Qt 4.4.
См. такжеsetDuplex().
bool QPrinter::fontEmbeddingEnabled() const
Возвращает true если встраивание шрифтов включено.
Эта функция была введена в Qt 4.1.
См. такжеsetFontEmbeddingEnabled().
int QPrinter::fromPage() const
Возвращает номер первой страницы в диапазоне страниц, которые нужно напечатать («номер начальной страницы»). Номера страниц документа нумеруются в соответствии с соглашением, согласно которому первая страница — страница 1.
По умолчанию эта функция возвращает специальное значение 0, означающее, что «номер начальной страницы» не задан.
Примечание: Если fromPage() и toPage() оба возвращают 0, это означает, что будет напечатан весь документ.
Эта функция была введена в Qt 4.1.
См. такжеsetFromTo() и toPage().
bool QPrinter::fullPage() const
Возвращает true если начало системы координат принтера находится в углу страницы и false, если оно находится на краю печатаемой области.
См. setFullPage() для получения подробностей и замечаний.
См. такжеsetFullPage() и pageLayout().
bool QPrinter::isValid() const
Возвращает true если выбранный в настоящее время принтер — действительный принтер в системе или чистый PDF-принтер; в противном случае возвращает false.
Для обнаружения других ошибок проверьте результат QPainter::begin() или QPrinter::newPage().
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("/foobar/nonwritable.pdf");
QPainter painter;
if (! painter.begin(&printer)) { // failed to open file
qWarning("failed to open file, is it writable?");
return 1;
}
painter.drawText(10, 10, "Test");
if (! printer.newPage()) {
qWarning("failed in flushing page to disk, disk full?");
return 1;
}
painter.drawText(10, 10, "Test 2");
painter.end(); Эта функция была введена в Qt 4.4.
См. такжеsetPrinterName().
[virtual] bool QPrinter::newPage()
Переопределено из QPagedPaintDevice::newPage().
Сообщает принтеру о выбросе текущей страницы и продолжении печати на новой странице. Возвращает true если это было успешно; в противном случае возвращает false.
Вызов newPage() для неактивного объекта QPrinter всегда завершается неудачей.
QString QPrinter::outputFileName() const
Возвращает имя выходного файла. По умолчанию это пустая строка (указывающая, что принтер не должен печатать в файл).
См. также setOutputFileName() и QPrintEngine::PrintEnginePropertyKey.
OutputFormat QPrinter::outputFormat() const
Возвращает формат вывода для данного принтера.
Эта функция была добавлена в Qt 4.1.
См. также setOutputFormat().
QPageLayout QPrinter::pageLayout() const
Возвращает текущую компоновку страницы. Используйте этот метод для доступа к текущему QPageSize, QPageLayout::Orientation, QMarginsF, fullPageRect() и paintRect().
Обратите внимание, что вы не можете использовать методы установки на возвращённый объект, вы должны либо использовать методы QPrinter, либо setPageLayout().
Эта функция была добавлена в Qt 5.3.
См. также setPageLayout(), setPageSize(), setPageOrientation() и setPageMargins().
PageOrder QPrinter::pageOrder() const
Возвращает текущий порядок страниц.
По умолчанию порядок страниц FirstPageFirst.
См. также setPageOrder().
QRectF QPrinter::pageRect(Unit unit) const
Возвращает прямоугольник страницы в единицах unit; он обычно меньше, чем paperRect(), так как страница обычно имеет поля между своими границами и бумагой.
Эта функция была добавлена в Qt 4.4.
См. также paperSize().
[virtual] QPaintEngine *QPrinter::paintEngine() const
Переопределено из QPaintDevice::paintEngine().
Возвращает движок отрисовки, используемый принтером.
QRectF QPrinter::paperRect(Unit unit) const
Возвращает прямоугольник бумаги в единицах unit; он обычно больше, чем pageRect().
Эта функция была добавлена в Qt 4.4.
См. также pageRect().
PaperSource QPrinter::paperSource() const
Возвращает источник бумаги принтера. Это Manual или лоток принтера или кассета с бумагой.
См. также setPaperSource().
QPrintEngine *QPrinter::printEngine() const
Возвращает движок печати, используемый принтером.
Эта функция была добавлена в Qt 4.1.
QString QPrinter::printProgram() const
Возвращает имя программы, которая отправляет выходные данные печати на принтер.
По умолчанию возвращается пустая строка; это означает, что QPrinter будет пытаться действовать интеллектуально в зависимости от системы. Только на X11 вы можете установить другое значение, чтобы использовать определённую программу печати. На других платформах это возвращает пустую строку.
См. также setPrintProgram() и setPrinterSelectionOption().
PrintRange QPrinter::printRange() const
Возвращает диапазон страниц QPrinter. После открытия диалогового окна настройки печати эта функция возвращает значение, выбранное пользователем.
Эта функция была добавлена в Qt 4.1.
См. также setPrintRange().
QString QPrinter::printerName() const
Возвращает имя принтера. Это значение по умолчанию устанавливается в имя принтера по умолчанию.
См. также setPrinterName().
QString QPrinter::printerSelectionOption() const
Возвращает строку выбора параметров принтера. Это полезно только в том случае, если команда печати была явно задана.
Значение по умолчанию (пустая строка) подразумевает, что принтер должен быть выбран в зависимости от системы.
Любое другое значение подразумевает, что должно быть использовано указанное значение.
Эта функция всегда возвращает пустую строку в Windows и Mac.
См. также setPrinterSelectionOption() и setPrintProgram().
PrinterState QPrinter::printerState() const
Возвращает текущее состояние принтера. Оно может быть не всегда точным (например, если принтер не имеет возможности сообщать о своём состоянии операционной системе).
int QPrinter::resolution() const
Возвращает предполагаемое разрешение принтера, установленное setResolution() или драйвером принтера.
См. также setResolution().
void QPrinter::setCollateCopies(bool collate)
Устанавливает значение по умолчанию для флажка упорядочения, когда появляется диалоговое окно печати. Если collate равно true, он включит setCollateCopiesEnabled(). Значение по умолчанию — false. Это значение будет изменено тем, что пользователь нажмёт в диалоговом окне печати.
Эта функция была добавлена в Qt 4.1.
См. также collateCopies().
void QPrinter::setColorMode(ColorMode newColorMode)
Устанавливает цветовой режим принтера на newColorMode, который может быть либо Color, либо GrayScale.
См. также colorMode().
void QPrinter::setCopyCount(int count)
Устанавливает количество копий для печати на count.
Драйвер принтера считывает это значение и печатает указанное количество копий.
Эта функция была добавлена в Qt 4.7.
См. также copyCount() и supportsMultipleCopies().
void QPrinter::setCreator(const QString &creator)
Устанавливает имя приложения, которое создало документ, на creator.
Эта функция применима только к версии Qt для X11. Если имя создателя не указано, создатель будет установлен как "Qt" с номером версии.
См. также creator().
void QPrinter::setDocName(const QString &name)
Устанавливает имя документа на name.
В X11 имя документа используется, например, как имя выходного файла по умолчанию в QPrintDialog. Обратите внимание, что имя документа не влияет на имя файла, если принтер печатает в файл. Используйте функцию setOutputFile() для этого.
См. также docName() и QPrintEngine::PrintEnginePropertyKey.
void QPrinter::setDuplex(DuplexMode duplex)
Включает двустороннюю печать в соответствии с режимом duplex.
Эта функция была добавлена в Qt 4.4.
См. также duplex().
[protected] void QPrinter::setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine)
Эта функция используется подклассами QPrinter для указания пользовательских движков печати и отрисовки (printEngine и paintEngine, соответственно).
QPrinter не принимает владения движками, поэтому вам нужно самостоятельно управлять этими экземплярами движков.
Обратите внимание, что изменение движков сбросит состояние принтера и все его свойства.
Эта функция была добавлена в Qt 4.1.
См. также printEngine(), paintEngine() и setOutputFormat().
void QPrinter::setFontEmbeddingEnabled(bool enable)
Включает или отключает встраивание шрифтов в зависимости от enable.
Эта функция была добавлена в Qt 4.1.
См. также fontEmbeddingEnabled().
void QPrinter::setFromTo(int from, int to)
Устанавливает диапазон страниц для печати, чтобы охватить страницы с номерами, указанными from и to, где from соответствует первой странице в диапазоне, а to — последней.
Примечание: страницы документа нумеруются согласно соглашению, что первая страница — страница 1. Однако, если from и to оба установлены в 0, будет напечатан весь документ.
Эта функция в основном используется для установки значения по умолчанию, которое пользователь может переопределить в диалоговом окне печати при вызове setup().
END_OF_DOCUMENT_MARKERЭта функция была добавлена в Qt 4.1.
См. также fromPage() и toPage().
void QPrinter::setFullPage(bool fp)
Если fp имеет значение true, активирует поддержку рисования по всей странице; в противном случае ограничивает рисование областью печати, сообщённой устройством.
По умолчанию печать по всей странице отключена. В этом случае начало координатной системы QPrinter совпадает с верхним левым углом области печати.
Если печать по всей странице включена, начало координатной системы QPrinter совпадает с верхним левым углом самого листа бумаги. В этом случае метрики устройства будут сообщать о тех же самых размерах, что и указано в PaperSize. Возможно, не удастся напечатать на всей физической странице из-за полей принтера, поэтому приложение должно учитывать поля самостоятельно.
См. также fullPage(), pageLayout(), setPageSize(), width() и height().
void QPrinter::setOutputFileName(const QString &fileName)
Устанавливает имя выходного файла на fileName.
Установка пустого или нулевого имени (0 или "") отключает печать в файл. Установка ненулевого имени включает печать в файл.
Это может изменить значение outputFormat(). Если имя файла имеет суффикс ".pdf", генерируется PDF. Если имя файла имеет суффикс, отличный от ".pdf", используемый формат вывода — тот, который был задан с помощью setOutputFormat().
QPrinter использует кроссплатформенные PDF-печатные движки Qt соответственно. Если вы можете создать этот формат напрямую, например, macOS может генерировать PDF из своего печатного движка, установите формат вывода обратно в NativeFormat.
См. также outputFileName() и setOutputFormat().
void QPrinter::setOutputFormat(OutputFormat format)
Устанавливает формат вывода для этого принтера на format.
Если format совпадает со значением, которое уже установлено, изменений не будет.
Если format равен NativeFormat, то printerName будет установлен на принтер по умолчанию. Если не настроен ни один допустимый принтер, изменений не будет. Если вы хотите установить NativeFormat со специфическим printerName, используйте setPrinterName().
Эта функция была добавлена в Qt 4.1.
См. также outputFormat() и setPrinterName().
bool QPrinter::setPageLayout(const QPageLayout &newLayout)
Устанавливает макет страницы на newLayout.
Если newLayout не соответствует текущему принтеру, макет страницы не будет изменён. Например, если размер страницы не поддерживается принтером, или поля выходят за пределы области печати.
Возвращает true, если макет страницы был успешно установлен на newLayout.
Эта функция была добавлена в Qt 5.3.
См. также pageLayout(), setPageSize(), setPageOrientation() и setPageMargins().
bool QPrinter::setPageMargins(const QMarginsF &margins)
Устанавливает поля страницы на margins с использованием текущих единиц. Возвращает true, если поля страницы были успешно установлены.
См. также pageLayout() и setPageLayout().
bool QPrinter::setPageMargins(const QMarginsF &margins, QPageLayout::Unit units)
Устанавливает поля страницы на margins в заданных units. Если units не указаны, используются текущие единицы.
Если включён режим полной страницы, проверка margins не выполняется, в противном случае margins должны находиться внутри области печати для размера страницы на текущем принтере.
Чтобы получить текущие поля страницы, используйте pageLayout().pageMargins().
Возвращает true, если поля страницы были успешно установлены на margins.
Эта функция была добавлена в Qt 5.3.
См. также pageLayout() и setPageLayout().
void QPrinter::setPageOrder(PageOrder pageOrder)
Устанавливает порядок страниц на pageOrder.
Порядок страниц может быть QPrinter::FirstPageFirst или QPrinter::LastPageFirst. Приложение отвечает за чтение порядка страниц и печать в соответствии с ним.
Эта функция в основном полезна для установки значения по умолчанию, которое пользователь может изменить в диалоге печати.
Эта функция поддерживается только под X11.
См. также pageOrder().
bool QPrinter::setPageOrientation(QPageLayout::Orientation orientation)
Устанавливает ориентацию страницы на QPageLayout::Portrait или QPageLayout::Landscape.
Драйвер принтера считывает это значение и печатает страницу с заданной ориентацией.
В Windows и Mac этот параметр можно изменить во время печати, и он вступит в силу с следующего вызова newPage().
Чтобы получить текущую ориентацию QPageLayout::Orientation, используйте pageLayout().pageOrientation().
Возвращает true, если ориентация страницы была успешно установлена на orientation.
Эта функция была добавлена в Qt 5.3.
См. также pageLayout() и setPageLayout().
bool QPrinter::setPageSize(const QPageSize &pageSize)
Устанавливает размер страницы на pageSize.
Если pageSize не соответствует текущему принтеру, размер страницы не будет изменён.
Изменение размера страницы может повлиять на текущие поля, если они выходят за пределы области печати для нового размера страницы на текущем принтере.
Чтобы получить текущий QPageSize, используйте pageLayout().pageSize().
Возвращает true, если размер страницы был успешно установлен на pageSize.
Эта функция была добавлена в Qt 5.3.
См. также pageSize(), pageLayout() и setPageLayout().
void QPrinter::setPaperSource(PaperSource source)
Устанавливает параметр источника бумаги на source.
Только Windows: этот параметр можно изменить во время печати, и он вступит в силу с следующего вызова newPage()
См. также paperSource().
void QPrinter::setPrintProgram(const QString &printProg)
Устанавливает имя программы, которая должна выполнить задание печати, на printProg.
В X11 эта функция устанавливает программу для вызова с PDF-выводом. На других платформах она не оказывает влияния.
См. также printProgram().
void QPrinter::setPrintRange(PrintRange range)
Устанавливает параметр диапазона печати в range.
Эта функция была добавлена в Qt 4.1.
См. также printRange().
void QPrinter::setPrinterName(const QString &name)
Устанавливает имя принтера на name.
Если name пустое, формат вывода будет установлен на PdfFormat.
Если name не является допустимым принтером, изменений не будет.
Если name — допустимый принтер, формат вывода будет установлен на NativeFormat.
См. также printerName(), isValid() и setOutputFormat().
void QPrinter::setPrinterSelectionOption(const QString &option)
Устанавливает принтер для использования option для выбора принтера. option по умолчанию null (что означает, что Qt должен самостоятельно корректно угадать), но его можно установить на другие значения, чтобы использовать специфический параметр выбора принтера.
Если параметр выбора принтера изменяется, когда принтер активен, текущее задание печати может быть или не быть затронуто.
Эта функция не работает в Windows или Mac.
См. также printerSelectionOption() и setPrintProgram().
void QPrinter::setResolution(int dpi)
Запрашивает, чтобы принтер печатал с разрешением dpi или как можно ближе к dpi.
Это значение влияет на координатную систему, возвращаемую, например, QPainter::viewport().
Эту функцию необходимо вызвать перед QPainter::begin(), чтобы она имела эффект на всех платформах.
См. также resolution() и setPaperSize().
QList<PaperSource> QPrinter::supportedPaperSources() const
Возвращает поддерживаемые размеры бумаги для данного принтера.
Значения будут либо соответствовать записи в перечислении QPrinter::PaperSource, либо драйверу-специфичному значению. Драйвер-специфичные значения больше, чем константа DMBIN_USER, объявленная в wingdi.h.
Предупреждение: Эта функция доступна только в Windows.
QList<int> QPrinter::supportedResolutions() const
Возвращает список разрешений (список целых чисел точек на дюйм), которые поддерживает принтер.
В X11, где вся печать происходит непосредственно в PDF, эта функция всегда возвращает список из одного элемента, содержащий только разрешение PDF, т. е. 72 (72 dpi — см. PrinterMode).
bool QPrinter::supportsMultipleCopies() const
Возвращает true если принтер поддерживает печать нескольких копий одного документа в одной задаче; в противном случае возвращается false.
На большинстве систем эта функция возвращает true. Однако на системах X11, которые не поддерживают CUPS, эта функция возвращает false. Это означает, что приложение должно обрабатывать количество копий, печатая один и тот же документ необходимое количество раз.
Эта функция была добавлена в Qt 4.7.
См. также setCopyCount() и copyCount().
int QPrinter::toPage() const
Возвращает номер последней страницы в диапазоне печатаемых страниц (параметр «до страницы»). Страницы документа нумеруются по соглашению, что первая страница — страница 1.
По умолчанию эта функция возвращает специальное значение 0, означающее, что параметр «до страницы» не задан.
Примечание: Если fromPage() и toPage() оба возвращают 0, это означает, что будет напечатан весь документ.
Программа отвечает за чтение этого параметра и печать в соответствии с ним.
Эта функция была добавлена в Qt 4.1.
См. также setFromTo() и fromPage().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qprinter.html