Класс 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() |
Вспомогательный метод для поиска служб печати двумерной графики. |
static StreamPrintServiceFactory[] |
lookupStreamPrintServices |
Вспомогательный метод для поиска фабрик служб потоковой печати, способных визуализировать двумерную графику. |
abstract PageFormat |
pageDialog |
Отображает диалоговое окно, позволяющее изменить экземпляр PageFormat. |
PageFormat |
pageDialog |
Вспомогательный метод для отображения кроссплатформенного диалогового окна настройки страницы. |
abstract void |
print() |
Печатает набор страниц. |
void |
print |
Печатает набор страниц с использованием настроек набора атрибутов. |
abstract boolean |
printDialog() |
Предлагает пользователю диалоговое окно для изменения свойств задания печати. |
boolean |
printDialog |
Вспомогательный метод для отображения кроссплатформенного диалогового окна печати для всех служб, способных печатать двумерную графику с помощью интерфейса 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.
lookupPrintServices
public static PrintService[] lookupPrintServices()
PrinterJobs, поддерживающих службы печати. Вызов этого метода эквивалентен вызову PrintServiceLookup.lookupPrintServices() с указанием Pageable DocFlavor.- Возвращает:
- возможно, пустой массив служб печати двумерной графики.
- С версии:
- 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 для указания любого формата. - Возвращает:
- возможно, пустой массив фабрик служб потоковой печати двумерной графики.
- С версии:
- 1.4
getPrintService
public PrintService getPrintService()
- Возвращает:
- службу для этого задания печати.
- С версии:
- 1.4
- См. также:
setPrintService
public void setPrintService(PrintService service) throws PrinterException
PrinterException, если указанная служба не поддерживает интерфейсы Pageable и Printable, необходимые для поддержки двумерной печати.- Параметры:
-
service— служба печати, поддерживающая двумерную печать - Выбрасывает:
-
PrinterException— если указанная служба не поддерживает двумерную печать, этот класс PrinterJob не поддерживает установку службы двумерной печати или указанная служба по иной причине не является допустимой службой печати. - С версии:
- 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 не изменяется.- Параметры:
-
page— формат по умолчаниюPageFormat, предлагаемый пользователю для изменения - Возвращает:
- исходный объект
page, если диалоговое окно отменено; новый объектPageFormat, содержащий формат, указанный пользователем, если диалоговое окно подтверждено. - Выбрасывает:
-
HeadlessException— если GraphicsEnvironment.isHeadless() возвращает true. - С версии:
- 1.2
- См. также:
pageDialog
public PageFormat pageDialog(PrintRequestAttributeSet attributes) throws HeadlessException
При передаче параметр attributes содержит начальные значения, которые клиенту необходимо выбрать в диалоговом окне пользователя. Для неуказанных атрибутов отображаются значения по умолчанию для службы. При возврате параметр будет содержать выбранные пользователем значения. Реализация может обновить выбранные значения, чтобы привести их в соответствие с поддерживаемыми значениями текущей выбранной службы печати.
Возвращаемое значение — PageFormat, соответствующий выбору в PrintRequestAttributeSet. Если пользователь отменит диалоговое окно, атрибуты не будут отражать внесенные им изменения, а возвращаемое значение будет равно null.
- Параметры:
-
attributes— при передаче содержит атрибуты, заданные приложением; при возврате содержимое обновлено с учетом выбора пользователя. Этот параметр не может быть null. - Возвращает:
- формат страницы, если пользователь не отменил диалоговое окно; в противном случае —
null. - Выбрасывает:
-
HeadlessException— если GraphicsEnvironment.isHeadless() возвращает true. -
NullPointerException— если параметрattributesравен null. - С версии:
- 1.4
- См. также:
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— ошибка в системе печати привела к прерыванию задания. - См. также:
public void print(PrintRequestAttributeSet attributes) throws PrinterException
Обратите внимание, что некоторые атрибуты можно задать непосредственно для PrinterJob эквивалентными вызовами методов, например количество копий: setCopies(int), имя задания: setJobName(String), а также указать размер и ориентацию носителя с помощью объекта PageFormat.
Если в этом наборе атрибутов указано поддерживаемое значение атрибута, оно будет иметь приоритет над настройками API только для этой операции print(). Для PageFormat определено следующее поведение: если клиент использует интерфейс Printable, параметр attributes этого метода проверяется на наличие атрибутов, задающих носитель (по размеру), ориентацию и область печати; на их основе создается новый PageFormat, который передается методу print() объекта Printable. Объяснение требуемого поведения Printable, обеспечивающего оптимальную печать через PrinterJob, см. в описании Printable. Для клиентов интерфейса Pageable PageFormat всегда соответствует формату, предоставленному этим интерфейсом отдельно для каждой страницы.
Это поведение позволяет приложению напрямую передавать настройки пользователя, возвращенные методом printDialog(PrintRequestAttributeSet attributes, в этот метод print().
- Параметры:
-
attributes— набор атрибутов задания - Выбрасывает:
-
PrinterException— ошибка в системе печати привела к прерыванию задания. - С версии:
- 1.4
- См. также:
setCopies
public abstract void setCopies(int copies)
- Параметры:
-
copies— количество копий для печати - См. также:
getCopies
public abstract int getCopies()
- Возвращает:
- количество копий для печати.
- См. также:
getUserName
public abstract String getUserName()
- Возвращает:
- имя пользователя, отправившего документ на печать
setJobName
public abstract void setJobName(String jobName)
null.- Параметры:
-
jobName— имя документа для печати - См. также:
getJobName
public abstract String getJobName()
- Возвращает:
- имя документа для печати.
- См. также:
cancel
public abstract void cancel()
print был вызван, но еще не завершился, этот метод сигнализирует о необходимости отменить задание при первой возможности. Если задание печати не выполняется, вызов этого метода ничего не делает.isCancelled
public abstract boolean isCancelled()
true, если выполняющееся задание печати будет отменено при первой возможности; в противном случае возвращает false.- Возвращает:
-
true, если выполняющееся задание будет отменено; в противном случае —false.
© 1993, 2025, 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/25/docs/api/java.desktop/java/awt/print/PrinterJob.html