Класс PrinterJob
public abstract class PrinterJob extends Object
PrinterJob — это основной класс, который управляет печатью. Приложение вызывает методы этого класса для настройки задания, при необходимости для вызова диалогового окна печати с пользователем, а затем для печати страниц задания.Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PrinterJob() |
Объект PrinterJob должен быть создан с помощью статического метода getPrinterJob. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
cancel() |
Отменяет задание печати, которое выполняется в данный момент. |
PageFormat |
defaultPage() |
Создаёт новый экземпляр PageFormat и устанавливает его по умолчанию размер и ориентацию. |
abstract PageFormat |
defaultPage |
Клонирует аргумент PageFormat и изменяет клон, чтобы описать размер и ориентацию страницы по умолчанию. |
abstract int |
getCopies() |
Получает количество копий для печати. |
abstract String |
getJobName() |
Получает имя документа, который будет печататься. |
PageFormat |
getPageFormat |
Вычисляет PageFormat со значениями, совместимыми со значениями, поддерживаемыми текущим PrintService для этого задания (например, значение, возвращаемое getPrintService()) и носителем, печатаемой областью и ориентацией, содержащимися в attributes. |
static PrinterJob |
getPrinterJob() |
Создаёт и возвращает PrinterJob, который изначально связан с принтером по умолчанию. |
PrintService |
getPrintService() |
Возвращает службу (принтер) для этого задания печати. |
abstract String |
getUserName() |
Получает имя пользователя, который печатает. |
abstract boolean |
isCancelled() |
Возвращает true, если задание печати выполняется, но будет отменено в следующий момент; в противном случае возвращает false. |
static PrintService[] |
lookupPrintServices() |
Метод-удобство, который ищет службы печати 2D. |
static StreamPrintServiceFactory[] |
lookupStreamPrintServices |
Метод-удобство, который находит фабрики для потоковых служб печати, которые могут отображать 2D-графику. |
abstract PageFormat |
pageDialog |
Отображает диалоговое окно, которое позволяет изменить экземпляр PageFormat. |
PageFormat |
pageDialog |
Метод-удобство, который отображает кроссплатформенное диалоговое окно настройки страницы. |
abstract void |
print() |
Печатает набор страниц. |
void |
print |
Печатает набор страниц с использованием настроек в наборе атрибутов. |
abstract boolean |
printDialog() |
Представляет диалоговое окно пользователю для изменения свойств задания печати. |
boolean |
printDialog |
Метод-удобство, который отображает кроссплатформенное диалоговое окно печати для всех служб, которые могут печатать 2D-графику с помощью интерфейса Pageable. |
abstract void |
setCopies |
Устанавливает количество копий для печати. |
abstract void |
setJobName |
Устанавливает имя документа, который будет печататься. |
abstract void |
setPageable |
Запрашивает document количество страниц и PageFormat и Printable для каждой страницы, хранящейся в экземпляре Pageable, document. |
abstract void |
setPrintable |
Вызывает painter для отображения страниц. |
abstract void |
setPrintable |
Вызывает painter для отображения страниц в указанном format. |
void |
setPrintService |
Связывает эту PrinterJob с новой PrintService. |
abstract PageFormat |
validatePage |
Возвращает клон page с настройками, скорректированными для соответствия текущему принтеру этой PrinterJob. |
Подробное описание конструкторов
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()
PrinterJob устройствах, поддерживающих службы печати. Вызов этого метода эквивалентен вызову PrintServiceLookup.lookupPrintServices() со спецификацией Pageable DocFlavor.- Возвращает:
- возможно пустой массив 2D служб печати.
- С момента:
- 1.4
lookupStreamPrintServices
public static StreamPrintServiceFactory[] lookupStreamPrintServices(String mimeType)
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()
- Возвращает:
- службу для этой задачи печати.
- С момента:
- 1.4
- См. также:
setPrintService
public void setPrintService(PrintService service) throws PrinterException
PrinterException , если указанная служба не может поддерживать Pageable и Printable интерфейсы, необходимые для поддержки 2D печати.- Параметры:
-
service- служба печати, поддерживающая 2D печать - Исключения:
-
PrinterException- если указанная служба не поддерживает 2D печать, или этот класс PrinterJob не поддерживает установку 2D службы печати, или указанная служба по другим причинам не является корректной службой печати. - С момента:
- 1.4
- См. также:
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. - См. также:
printDialog
public abstract boolean printDialog() throws HeadlessException
printDialog(PrintRequestAttributeSet). Реализации PrinterJob, которые могут использовать PrintService, обновят PrintService для этого PrinterJob, чтобы отразить новую выбранную пользователем службу.
- Возвращает:
-
trueесли пользователь не отменил диалог;falseв противном случае. - Исключения:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. - См. также:
printDialog
public boolean printDialog(PrintRequestAttributeSet attributes) throws HeadlessException
Pageable. Выбранный принтер при первоначальном отображении диалога будет отражать службу печати, которая в данный момент подключена к этому заданию печати. Если пользователь изменит службу печати, PrinterJob будет обновлён, чтобы отразить это, если пользователь не отменит диалог. Помимо выбора принтера назначения, пользователь может также выбрать значения различных атрибутов запроса печати. Параметр attributes при вводе будет отражать первоначальный выбор приложения в диалоговом окне пользователя. Атрибуты, не указанные при выводе, будут отображаться по умолчанию для службы. При выводе он будет отражать выбор пользователя. Выбранные значения могут быть обновлены реализацией, чтобы соответствовать поддерживаемым значениям для выбранной в настоящее время службы печати.
При прокрутке к новому выбору службы печати копируемые значения основаны на настройках предыдущей службы, а также на любых изменениях пользователя. Значения не основаны на первоначальных настройках, предоставленных клиентом.
За исключением выбранного принтера, состояние PrinterJob не обновляется, чтобы отразить изменения пользователя. Для того чтобы выбранные значения повлияли на задание печати, их необходимо указать в вызове метода print(PrintRequestAttributeSet). Если используется интерфейс Pageable, клиенты, которые намерены использовать выбранный пользователем носитель, должны создать PageFormat, полученный из выборов пользователя. Если пользователь отменяет диалог, атрибуты не будут отражать внесённые пользователем изменения.
- Параметры:
-
attributes- при вводе содержит атрибуты, предоставленные приложением; при выводе содержимое обновляется, чтобы отразить выбор пользователя. Этот параметр не может быть null. - Возвращает:
-
trueесли пользователь не отменяет диалог;falseв противном случае. - Исключения:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. -
NullPointerException- если параметрattributesравен null. - С момента:
- 1.4
- См. также:
pageDialog
public abstract PageFormat pageDialog(PageFormat page) throws HeadlessException
PageFormat. Аргумент page используется для инициализации элементов управления в диалоговом окне настройки страницы. Если пользователь отменяет диалоговое окно, этот метод возвращает исходный объект page без изменений. Если пользователь подтверждает диалоговое окно, этот метод возвращает новый объект PageFormat с внесёнными изменениями. В любом случае исходный объект page не изменяется.- Parameters:
-
page- значениеPageFormatпо умолчанию, представленное пользователю для изменения - Returns:
- исходный объект
page, если диалоговое окно отменено; новый объектPageFormat, содержащий формат, указанный пользователем, если диалоговое окно подтверждено. - Throws:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. - Since:
- 1.2
- See Also:
pageDialog
public PageFormat pageDialog(PrintRequestAttributeSet attributes) throws HeadlessException
Параметр attributes на входе отражает первоначальный выбор клиента в диалоговом окне пользователя. Не указанные атрибуты отображаются по умолчанию для службы. На выходе он отразит выбор пользователя. Выбор может быть обновлён реализацией, чтобы соответствовать поддерживаемым значениям для текущей выбранной службы печати.
Возвращаемое значение будет эквивалентом PageFormat для выбора в PrintRequestAttributeSet. Если пользователь отменяет диалоговое окно, атрибуты не будут отражать внесённые пользователем изменения, и возвращаемое значение будет null.
- Parameters:
-
attributes- на вход подаются атрибуты приложения, на выходе содержимое обновляется, чтобы отразить выбор пользователя. Этот параметр не может быть null. - Returns:
- формат страницы, если пользователь не отменяет диалоговое окно;
nullв противном случае. - Throws:
-
HeadlessException- если GraphicsEnvironment.isHeadless() возвращает true. -
NullPointerException- если параметрattributesимеет значение null. - Since:
- 1.4
- See Also:
defaultPage
public abstract PageFormat defaultPage(PageFormat page)
PageFormat и изменяет клон, чтобы описать размер и ориентацию страницы по умолчанию.- Parameters:
-
page-PageFormatдля клонирования и изменения - Returns:
- клон
page, изменённый для описания размера и ориентации страницы по умолчанию.
defaultPage
public PageFormat defaultPage()
PageFormat и устанавливает его размер и ориентацию по умолчанию.- Returns:
- экземпляр
PageFormatс размером и ориентацией по умолчанию.
getPageFormat
public PageFormat getPageFormat(PrintRequestAttributeSet attributes)
PageFormat со значениями, соответствующими тем, которые поддерживаются текущей PrintService для данного задания (т.е. значение, возвращаемое getPrintService()) и носителя, печатаемой области и ориентации, содержащихся в attributes. Вызов этого метода не обновляет задание. Он полезен для клиентов, у которых есть набор атрибутов, полученных из printDialog(PrintRequestAttributeSet attributes), и которым необходим PageFormat для печати объекта Pageable.
- Parameters:
-
attributes- набор атрибутов печати, например, полученных вызовом printDialog. Еслиattributesимеет значение null, возвращается PageFormat по умолчанию. - Returns:
PageFormatс настройками, соответствующими текущей службе и указанным атрибутам.- Since:
- 1.6
validatePage
public abstract PageFormat validatePage(PageFormat page)
page с настройками, адаптированными для текущего принтера этого PrinterJob. Например, возвращённый PageFormat может иметь область изображения, скорректированную для соответствия физической области бумаги, используемой текущим принтером.- Parameters:
-
page-PageFormatдля клонирования и изменения настроек для соответствия текущему принтеру - Returns:
PageFormatс настройками, скопированными изpageи адаптированными для этогоPrinterJob.
public abstract void print() throws PrinterException
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 формат страницы всегда передаётся этим интерфейсом на основе каждой страницы.
Это поведение позволяет приложению напрямую передать настройки пользователя, возвращённые из printDialog(PrintRequestAttributeSet attributes, в этот метод print().
setCopies
public abstract void setCopies(int copies)
- Parameters:
-
copies- количество копий для печати - See Also:
getCopies
public abstract int getCopies()
- Returns:
- количество копий для печати.
- See Also:
getUserName
public abstract String getUserName()
- Returns:
- имя пользователя, выполняющего печать
- Throws:
-
SecurityException- если существует менеджер безопасности и разрешение PropertyPermission - user.name не указано в файле политики
setJobName
public abstract void setJobName(String jobName)
null.- Parameters:
-
jobName- имя документа для печати - See Also:
getJobName
public abstract String getJobName()
- Returns:
- имя документа для печати.
- See Also:
cancel
public abstract void cancel()
print был вызван, но ещё не завершён, этот метод сигнализирует, что задание должно быть отменено в ближайшее время. Если задание печати не выполняется, этот вызов ничего не делает.isCancelled
public abstract boolean isCancelled()
true если задание печати выполняется, но будет отменено в ближайшее время; в противном случае возвращает false.- Returns:
-
trueесли текущее задание будет отменено;falseв противном случае.
© 1993, 2021, 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/17/docs/api/java.desktop/java/awt/print/PrinterJob.html