Класс 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 Связывает эту работу с принтером с новой PrintService. Этот метод переопределяется подклассами, которые поддерживают указание Print Service. Выбрасывает 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, изменённый для описания размера и ориентации страницы по умолчанию.
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()
Получает имя пользователя, выполняющего печать.
- Возвращает:
- имя пользователя, выполняющего печать
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.