Класс 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() и указанию DocFlavor Pageable.- Возвращает:
- возможно пустой массив 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()
и указанию DocFlavor Pageable.- Параметры:
-
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, изменённая для описания размера страницы по умолчаниюPageFormat.
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, возвращается формат страницы по умолчанию. - 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
- Throws:
-
PrinterException- ошибка в системе печати привела к прерыванию задания. - See Also:
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().
- Parameters:
-
attributes- набор атрибутов для задания - Throws:
-
PrinterException- ошибка в системе печати привела к прерыванию задания. - Since:
- 1.4
- See Also:
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, 2023, 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/21/docs/api/java.desktop/java/awt/print/PrinterJob.html