Класс PrinterJob
- java.lang.Object
-
- java.awt.print.PrinterJob
public abstract class PrinterJob extends Object
Класс PrinterJob является основным классом, управляющим печатью. Приложение вызывает методы этого класса для настройки задания, при необходимости, для вызова диалогового окна печати с пользователем, а затем для печати страниц задания.
Конструкторы
| Конструктор | Описание |
|---|---|
PrinterJob() | Объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void | cancel() | Отменяет задание печати, которое выполняется. |
PageFormat | defaultPage() | Создаёт новый экземпляр |
abstract PageFormat | defaultPage(PageFormat page) | Создаёт клон аргумента |
abstract int | getCopies() | Получает количество копий для печати. |
abstract String | getJobName() | Получает имя документа, который будет печататься. |
PageFormat | getPageFormat(PrintRequestAttributeSet attributes) | Вычисляет |
static PrinterJob | getPrinterJob() | Создаёт и возвращает |
PrintService | getPrintService() | Возвращает службу (принтер) для этого задания печати. |
abstract String | getUserName() | Получает имя пользователя, печатающего документ. |
abstract boolean | isCancelled() | Возвращает |
static PrintService[] | lookupPrintServices() | Удобный метод, который находит 2D службы печати. |
static StreamPrintServiceFactory[] | lookupStreamPrintServices(String mimeType) | Удобный метод, который находит фабрики для потоковых служб печати, которые могут отображать 2D графику. |
abstract PageFormat | pageDialog(PageFormat page) | Отображает диалоговое окно, позволяющее изменить экземпляр |
PageFormat | pageDialog(PrintRequestAttributeSet attributes) | Удобный метод, который отображает кроссплатформенное диалоговое окно настройки страницы. |
abstract void | print() | Печатает набор страниц. |
void | print(PrintRequestAttributeSet attributes) | Печатает набор страниц, используя настройки в наборе атрибутов. |
abstract boolean | printDialog() | Представляет пользователю диалоговое окно для изменения свойств задания печати. |
boolean | printDialog(PrintRequestAttributeSet attributes) | Удобный метод, который отображает кроссплатформенное диалоговое окно печати для всех служб, которые способны печатать 2D графику, используя интерфейс |
abstract void | setCopies(int copies) | Устанавливает количество копий для печати. |
abstract void | setJobName(String jobName) | Устанавливает имя документа, который будет печататься. |
abstract void | setPageable(Pageable document) | Запрашивает |
abstract void | setPrintable(Printable painter) | Вызывает |
abstract void | setPrintable(Printable painter,
PageFormat format) | Вызывает |
void | setPrintService(PrintService service) | Связывает данное PrinterJob с новой PrintService. |
abstract PageFormat | validatePage(PageFormat page) | Возвращает клон |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
PrinterJob
public PrinterJob()
Объект PrinterJob должен быть создан с использованием статического метода getPrinterJob.
Методы
getPrinterJob
public static PrinterJob getPrinterJob()
Создаёт и возвращает PrinterJob, который изначально связан с принтером по умолчанию. Если на системе нет принтеров, метод всё равно вернёт PrinterJob, но getPrintService() вернёт null, а вызов print с этим PrinterJob может сгенерировать исключение. Приложения, которым нужно определить, есть ли подходящие принтеры перед созданием PrinterJob, должны убедиться, что массив, возвращаемый из lookupPrintServices, не пуст.
- Возвращает:
- новый
PrinterJob. - Изначает:
-
SecurityException- если существует менеджер безопасности и его методSecurityManager.checkPrintJobAccess()не разрешает этому потоку создавать запрос на печать.
lookupPrintServices
public static PrintService[] lookupPrintServices()
Удобный метод, который ищет службы печати 2D. Службы, возвращаемые этим методом, могут быть установлены на PrinterJob, которые поддерживают службы печати. Вызов этого метода эквивалентен вызову PrintServiceLookup.lookupPrintServices() и указанию Pageable DocFlavor.
- Возвращает:
- возможно пустой массив служб печати 2D.
- С:
- 1.4
lookupStreamPrintServices
public static StreamPrintServiceFactory[] lookupStreamPrintServices(String mimeType)
Удобный метод, который находит фабрики для потоковых служб печати, которые могут отображать 2D-графику. Пример использования:
FileOutputStream outstream;
StreamPrintService psPrinter;
String psMimeType = "application/postscript";
PrinterJob pj = PrinterJob.getPrinterJob();
StreamPrintServiceFactory[] factories =
PrinterJob.lookupStreamPrintServices(psMimeType);
if (factories.length > 0) {
try {
outstream = new File("out.ps");
psPrinter = factories[0].getPrintService(outstream);
// psPrinter can now be set as the service on a PrinterJob
pj.setPrintService(psPrinter)
} catch (Exception e) {
e.printStackTrace();
}
} Службы, возвращаемые этим методом, могут быть установлены на PrinterJob экземплярах, которые поддерживают службы печати. Вызов этого метода эквивалентен вызову StreamPrintServiceFactory.lookupStreamPrintServiceFactories()
и указанию Pageable DocFlavor. - Параметры:
-
mimeType- требуемый формат вывода или null, чтобы указать любой формат. - Возвращает:
- возможно пустой массив фабрик потоковых служб печати 2D.
- С:
- 1.4
getPrintService
public PrintService getPrintService()
Возвращает службу (принтер) для этого задания печати. Реализации этого класса, которые не поддерживают службы печати, могут вернуть null. null также будет возвращён, если принтеры недоступны.
- Возвращает:
- службу для этого задания печати.
- С:
- 1.4
- См. также:
-
setPrintService(PrintService),getPrinterJob()
setPrintService
public void setPrintService(PrintService service)
throws PrinterException Связывает это PrinterJob с новой PrintService. Этот метод переопределяется подклассами, которые поддерживают указание PrintService. Бросает PrinterException, если указанная служба не может поддерживать интерфейсы Pageable и Printable, необходимые для поддержки печати 2D.
- Параметры:
-
service- служба печати, поддерживающая 2D-печать - Изначает:
-
PrinterException- если указанная служба не поддерживает 2D-печать, или этот класс PrinterJob не поддерживает установку 2D-службы печати, или указанная служба по другим причинам не является действительной службой печати. - С:
- 1.4
- См. также:
getPrintService()
setPrintable
public abstract void setPrintable(Printable painter)
Вызывает painter для рендеринга страниц. Страницы документа, который должен быть напечатан этим PrinterJob, рендерятся объектом Printable, painter. PageFormat для каждой страницы — это формат страницы по умолчанию.
- Параметры:
-
painter-Printable, рендерящий каждую страницу документа.
setPrintable
public abstract void setPrintable(Printable painter,
PageFormat format) Вызывает painter для рендеринга страниц в указанном format. Страницы документа, подлежащего печати этим PrinterJob, рендерятся объектом Printable, painter. PageFormat каждой страницы — format.
- Параметры:
-
painter-Printable, вызываемый для рендеринга каждой страницы документа -
format- размеры и ориентация каждой печатаемой страницы
setPageable
public abstract void setPageable(Pageable document)
throws NullPointerException Запрашивает document количество страниц и PageFormat и Printable для каждой страницы, содержащихся в экземпляре Pageable, document.
- Параметры:
-
document- страницы для печати. Не может бытьnull. - Изначает:
-
NullPointerException- переданныйPageableбылnull. - См. также:
-
PageFormat,Printable
printDialog
public abstract boolean printDialog()
throws HeadlessException Представляет пользователю диалог для изменения свойств задания печати. Этот метод отобразит системный диалог, если выбрана системная служба печати, и выбор принтеров будет ограничен этими системными службами печати. Для отображения кроссплатформенного диалога печати для всех служб, включая системные, используйте printDialog(PrintRequestAttributeSet).
Реализации PrinterJob, которые могут использовать PrintService, обновит PrintService для этого PrinterJob, чтобы отразить новую службу, выбранную пользователем.
- Возвращает:
-
true, если пользователь не отменил диалог;falseв противном случае. - Изначает:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. - См. также:
GraphicsEnvironment.isHeadless()
printDialog
public boolean printDialog(PrintRequestAttributeSet attributes)
throws HeadlessException Удобный метод, который отображает кроссплатформенный диалог печати для всех служб, способных печатать 2D-графику с использованием интерфейса Pageable. Выбранный принтер при первоначальном отображении диалога будет отражать службу печати, в настоящее время присоединённую к этому заданию печати. Если пользователь изменит службу печати, PrinterJob будет обновлён, чтобы отразить это, если пользователь не отменит диалог. Кроме выбора целевого принтера, пользователь также может выбрать значения различных атрибутов запроса на печать.
В качестве параметра attributes на входе отображаются первоначальные требуемые пользователем параметры. Атрибуты, не указанные явно, отображаются с использованием значения по умолчанию для службы. После завершения, он будет отражать выбор пользователя. Выбранные параметры могут быть обновлены реализацией, чтобы соответствовать поддерживаемым значениям для текущей выбранной службы печати.
Когда пользователь переходит к новому выбору службы печати, копируемые значения основаны на настройках предыдущей службы, вместе с любыми изменениями пользователя. Значения не основаны на исходных настройках, предоставленных клиентом.
За исключением выбранного принтера, состояние PrinterJob не обновляется для отражения изменений пользователя. Чтобы изменения повлияли на задание печати, атрибуты должны быть указаны в вызове метода print(PrintRequestAttributeSet). Если используется Pageable интерфейс, клиенты, намеревающиеся использовать выбранные пользователем носители, должны создать PageFormat, выведенный из выборов пользователя. Если пользователь отменяет диалог, атрибуты не будут отражать любые изменения, внесённые пользователем.
- Параметры:
-
attributes- на входе приложение предоставляет атрибуты, на выходе содержимое обновляется для отражения выборов пользователя. Этот параметр не может быть null. - Возвращает:
-
true, если пользователь не отменяет диалог;falseв противном случае. - Изначает:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. -
NullPointerException- если параметрattributesравен null. - С:
- 1.4
- См. также:
GraphicsEnvironment.isHeadless()
pageDialog
public abstract PageFormat pageDialog(PageFormat page)
throws HeadlessException Отображает диалог, который позволяет изменить экземпляр PageFormat. Аргумент page используется для инициализации элементов управления в диалоге настройки страницы. Если пользователь отменяет диалог, этот метод возвращает исходный объект page без изменений. Если пользователь подтверждает диалог, этот метод возвращает новый объект PageFormat с указанными изменениями. В любом случае исходный объект page не изменяется.
- Параметры:
-
page- по умолчаниюPageFormat, представленный пользователю для изменения - Возвращает:
- исходный объект
page, если диалог отменён; новый объектPageFormat, содержащий формат, указанный пользователем, если диалог подтверждён. - Изначает:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. - С:
- 1.2
- См. также:
GraphicsEnvironment.isHeadless()
pageDialog
public PageFormat pageDialog(PrintRequestAttributeSet attributes)
throws HeadlessException Удобный метод, который отображает кроссплатформенный диалог настройки страницы. Доступные варианты будут отражать службу печати, в настоящее время установленную в этом PrinterJob.
Параметр attributes на входе отражает требуемые клиентом первоначальные параметры в диалоге пользователя. Атрибуты, не указанные явно, отображаются с использованием значения по умолчанию для службы. После завершения, он будет отражать выбор пользователя. Выбранные параметры могут быть обновлены реализацией, чтобы соответствовать поддерживаемым значениям для текущей выбранной службы печати.
Результат будет PageFormat, эквивалентный выбору в PrintRequestAttributeSet. Если пользователь отменяет диалог, атрибуты не будут отражать внесённые пользователем изменения, и возвращаемое значение будет null.
- Параметры:
-
attributes- при вводе содержит атрибуты, предоставленные приложением; при выводе содержимое обновляется, чтобы отразить выбор пользователя. Этот параметр не может быть null. - Возвращает:
- формат страницы, если пользователь не отменил диалог;
nullв противном случае. - Выбрасывает:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. -
NullPointerException- если параметрattributesравен null. - С:
- 1.4
- См. также:
GraphicsEnvironment.isHeadless()
defaultPage
public abstract PageFormat defaultPage(PageFormat page)
Создаёт клон аргумента PageFormat и изменяет клон, чтобы описать размер и ориентацию страницы по умолчанию.
- Параметры:
-
page-PageFormat, подлежащий клонированию и изменению - Возвращает:
- клон
page, изменённый для описания формата страницы по умолчаниюPageFormat.
defaultPage
public PageFormat defaultPage()
Создаёт новый экземпляр PageFormat и устанавливает его в соответствии с размером и ориентацией по умолчанию.
- Возвращает:
- экземпляр
PageFormat, установленный в соответствии с размером и ориентацией по умолчанию.
getPageFormat
public PageFormat getPageFormat(PrintRequestAttributeSet attributes)
Вычисляет PageFormat со значениями, согласованными с поддерживаемыми текущим PrintService для этой задачи (то есть, значение, возвращаемое getPrintService()) и типом носителя, печатаемой областью и ориентацией, содержащимися в attributes.
Вызов этого метода не обновляет задачу. Он полезен для клиентов, которые имеют набор атрибутов, полученных из printDialog(PrintRequestAttributeSet attributes), и которым требуется PageFormat для печати объекта Pageable.
- Параметры:
-
attributes- набор атрибутов печати, например, полученные при вызове printDialog. Еслиattributesравен null, возвращается PageFormat по умолчанию. - Возвращает:
PageFormat, настройки которого соответствуют настройкам текущей службы и указанным атрибутам.- С:
- 1.6
validatePage
public abstract PageFormat validatePage(PageFormat page)
Возвращает клон page с настройками, скорректированными в соответствии с текущим принтером этого PrinterJob. Например, возвращаемый PageFormat может иметь область изображения, скорректированную для размещения в пределах физической области бумаги, используемой текущим принтером.
- Параметры:
-
page-PageFormat, который клонируется, а его настройки изменяются, чтобы соответствовать текущему принтеру - Возвращает:
PageFormat, который клонирован изpage, а его настройки изменены для соответствия этомуPrinterJob.
public abstract void print()
throws PrinterException Печатает набор страниц.
- Выбрасывает:
-
PrinterException- ошибка в системе печати привела к прерыванию задачи. - См. также:
-
Book,Pageable,Printable
public void print(PrintRequestAttributeSet attributes)
throws PrinterException Печатает набор страниц, используя настройки в наборе атрибутов. Реализация по умолчанию игнорирует набор атрибутов.
Обратите внимание, что некоторые атрибуты могут быть установлены непосредственно в PrinterJob с помощью эквивалентных вызовов методов (например), копии: setCopies(int), имя задачи: setJobName(String) и указание размера и ориентации носителя с помощью объекта PageFormat.
Если в этом наборе атрибутов указан поддерживаемый атрибут-значение, он будет иметь приоритет над настройками API для этой операции print() только. Ниже указано поведение для PageFormat: Если клиент использует интерфейс Printable, то параметр attributes этого метода проверяется на наличие атрибутов, которые задают носитель (по размеру), ориентацию и область изображения, и эти атрибуты используются для построения нового PageFormat, который передаётся в метод print() объекта Printable. См. Printable для объяснения требуемого поведения Printable, чтобы гарантировать оптимальную печать с помощью PrinterJob. Для клиентов интерфейса Pageable PageFormat всегда будет таким, как предоставлено этим интерфейсом, на каждой странице.
Это поведение позволяет приложению напрямую передавать настройки пользователя, возвращённые из printDialog(PrintRequestAttributeSet attributes, в этот метод print().
- Параметры:
-
attributes- набор атрибутов для задачи - Выбрасывает:
-
PrinterException- ошибка в системе печати привела к прерыванию задачи. - С:
- 1.4
- См. также:
-
Book,Pageable,Printable
setCopies
public abstract void setCopies(int copies)
Устанавливает количество копий для печати.
- Параметры:
-
copies- количество копий для печати - См. также:
getCopies()
getCopies
public abstract int getCopies()
Возвращает количество копий для печати.
- Возвращает:
- количество копий для печати.
- См. также:
setCopies(int)
getUserName
public abstract String getUserName()
Возвращает имя пользователя печати.
- Возвращает:
- имя пользователя печати
- Выбрасывает:
-
SecurityException- если существует менеджер безопасности и PropertyPermission - user.name не указан в файле политики
setJobName
public abstract void setJobName(String jobName)
Устанавливает имя документа для печати. Имя документа не может быть null.
- Параметры:
-
jobName- имя документа для печати - См. также:
getJobName()
getJobName
public abstract String getJobName()
Возвращает имя документа для печати.
- Возвращает:
- имя документа для печати.
- См. также:
setJobName(java.lang.String)
cancel
public abstract void cancel()
Отменяет задачу печати, которая выполняется. Если print был вызван, но не возвращён, то этот метод сигнализирует о том, что задача должна быть отменена при следующей возможности. Если задача печати не выполняется, этот вызов ничего не делает.
isCancelled
public abstract boolean isCancelled()
Возвращает true, если задача печати выполняется, но будет отменена при следующей возможности; в противном случае возвращает false.
- Возвращает:
-
true, если выполняемая задача будет отменена;falseв противном случае.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/print/PrinterJob.html