Класс QPrinter
Класс QPrinter — это устройство рисования, предназначенное для печати на принтере. Подробнее...
| Заголовок: | #include <QPrinter> |
| qmake: | QT += printsupport |
| Наследуется от: | QPagedPaintDevice |
Примечание: Все функции в этом классе являются повторно входящими.
Открытые типы
| Перечисление | ColorMode { Цвет, ОттенкиСерого } |
| Перечисление | DuplexMode { ДвустороннейПечатиНет, ДвусторонняяАвтоматически, ДвусторонняяПоДлиннойСтороне, ДвусторонняяПоКороткиСтороне } |
| Перечисление | Orientation { Портрет, Альбом } |
| Перечисление | OutputFormat { ФорматПоУмолчанию, ФорматPdf } |
| Перечисление | PageOrder { ПерваяСтраницаСначала, ПоследняяСтраницаСначала } |
| Тип | PaperSize |
| Перечисление | PaperSource { Автоматически, Кассета, Конверт, РучнойКонверт, ..., ПоследнийИсточникБумаги } |
| Перечисление | PrintRange { ВсеСтраницы, Выделение, ДиапазонСтраниц, ТекущаяСтраница } |
| Перечисление | PrinterMode { РазрешениеЭкрана, РазрешениеПринтера, ВысокоеРазрешение } |
| Перечисление | PrinterState { Простой, Активный, Прерванный, Ошибка } |
| Перечисление | Unit { Миллиметр, Пункт, Дюйм, Пика, ..., ТочкаУстройства } |
Открытые функции
| 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 публичных функций, унаследованных от QPagedPaintDevice
- 14 публичных функций, унаследованных от 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 сгенерирует свой вывод в виде поискового PDF-файла. Этот режим является режимом по умолчанию при печати в файл. |
См. также outputFormat(), setOutputFormat(), и setOutputFileName().
перечисление QPrinter::PageOrder
Этот тип перечисления используется QPrinter, чтобы сообщить приложению, как печатать.
| Постоянная | Значение | Описание |
|---|---|---|
QPrinter::FirstPageFirst |
0 |
номер страницы с меньшим номером должен быть напечатан первым. |
QPrinter::LastPageFirst |
1 |
номер страницы с большим номером должен быть напечатан первым. |
тип QPrinter::PaperSize
тип для перечисления QPagedPaintDevice::PageSize.
Этот тип перечисления определяет, какой размер бумаги QPrinter должен использовать. QPrinter не проверяет, доступен ли размер бумаги; он просто использует эту информацию вместе с QPrinter::Orientation и QPrinter::setFullPage() для определения области печати.
Определённые размеры (с setFullPage(true)) находятся в QPagedPaintDevice.
С setFullPage(false) (по умолчанию) метрики будут немного меньше; насколько это зависит от используемого принтера.
Из-за исторических причин QPageSize::Executive не совпадает со стандартным размером Postscript и Windows Executive, используйте вместо этого QPageSize::ExecutiveStandard.
Стандартный размер Postscript QPageSize::Folio отличается от размера Windows DMPAPER_FOLIO, используйте стандартный размер Postscript QPageSize::FanFoldGermanLegal, если это необходимо.
Этот псевдоним типа был введён в Qt 4.4.
перечисление QPrinter::PaperSource
Этот тип перечисления определяет, какой источник бумаги QPrinter должен использовать. QPrinter не проверяет, доступен ли источник бумаги; он просто использует эту информацию, чтобы попытаться установить источник бумаги. Будет ли он устанавливать источник бумаги, зависит от того, есть ли у принтера этот конкретный источник.
Предупреждение: В настоящее время это реализовано только для Windows.
END_OF_DOCUMENT_MARKER| Постоянная | Значение | Описание |
|---|---|---|
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 dpi. |
Примечание: При отрисовке текста на устройстве 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().
Обратите внимание, что вы не можете использовать методы изменения (setters) для возвращённого объекта. Вы должны использовать методы класса 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().
Эта функция была добавлена в Qt 4.1.
См. также fromPage() и toPage().
void QPrinter::setFullPage(bool fp)
Если fp равно true, включает поддержку рисования по всей странице; в противном случае ограничивает рисование областью печати, сообщенной устройством.
По умолчанию печать по всей странице отключена. В этом случае начало координатной системы QPrinter совпадает с верхним левым углом области печати.
Если печать по всей странице включена, начало координатной системы QPrinter совпадает с верхним левым углом листа бумаги. В этом случае метрики устройства (device metrics) будут сообщать точно такие же размеры, как указано в 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 и macOS этот параметр можно изменить во время печати, и он вступит в силу при следующем вызове 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/qt-5.9/qprinter.html