Spec-Zone.ru › OpenJDK 25

Пакет javax.print

package javax.print
Предоставляет основные классы и интерфейсы API Java Print Service. API Java Print Service позволяет клиентским и серверным приложениям:
  • Находить службы печати и выбирать их на основе предоставляемых ими возможностей
  • Задавать формат данных для печати
  • Отправлять задания на печать в службы, поддерживающие тип печатаемого документа.

Поиск служб печати

Приложение вызывает статические методы абстрактного класса PrintServiceLookup, чтобы найти службы печати, способные удовлетворить запрос приложения на печать. Например, чтобы напечатать документ с двухсторонней печатью, приложению сначала необходимо найти принтеры с поддержкой двухсторонней печати.

JDK включает реализации PrintServiceLookup, которые позволяют находить стандартные платформенные принтеры. Чтобы находить другие типы принтеров, например IPP-принтеры или принтеры JINI, поставщик службы печати может написать реализации PrintServiceLookup. Поставщик службы печати может динамически устанавливать эти реализации PrintServiceLookup с помощью средства ServiceLoader.

Определения атрибутов

Пакеты javax.print.attribute и javax.print.attribute.standard определяют атрибуты печати, описывающие возможности службы печати, задающие требования задания на печать и отслеживающие ход выполнения задания.

Пакет javax.print.attribute описывает типы атрибутов и способы их объединения в наборы. Пакет javax.print.attribute.standard перечисляет все стандартные атрибуты, поддерживаемые API; большинство из них реализуют атрибуты, определённые в спецификации IETF RFC 2911: протокол интернет-печати, версия 1.1: модель и семантика от сентября 2000 года. Атрибуты, определённые в javax.print.attribute.standard, включают распространённые возможности, такие как разрешение, число копий, размеры носителей, приоритет задания и диапазоны страниц.

Спецификация типа документа

Класс DocFlavor представляет формат данных для печати, например JPEG или PostScript. Объект DocFlavor состоит из типа MIME, описывающего формат, и имени класса представления документа, указывающего, каким образом документ передаётся на принтер или в выходной поток. Приложение использует DocFlavor и набор атрибутов, чтобы найти принтеры, способные напечатать тип документа, заданный в DocFlavor, и обладающие возможностями, указанными в наборе атрибутов.

Использование API

Типичное приложение, использующее API Java Print Service, выполняет следующие шаги для обработки запроса на печать:
  1. Выбирает DocFlavor.
  2. Создаёт набор атрибутов.
  3. Находит службу печати, способную обработать запрос на печать, заданный с помощью DocFlavor и набора атрибутов.
  4. Создаёт объект Doc, содержащий DocFlavor и фактические данные для печати, которые могут иметь различные формы, в том числе файл PostScript, изображение JPEG, URL или обычный текст.
  5. Получает задание на печать, представленное интерфейсом DocPrintJob, от службы печати.
  6. Вызывает метод печати задания.
В следующем примере кода показано типичное использование API Java Print Service: поиск принтеров, способных напечатать пять двусторонних копий документа PostScript на бумаге формата A4, создание задания на печать с помощью одной из найденных служб печати и вызов метода печати.
FileInputStream psStream;
try {
    psStream = new FileInputStream("file.ps");
} catch (FileNotFoundException ffne) {
}
if (psStream == null) {
    return;
}
DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT;
Doc myDoc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new Copies(5));
aset.add(MediaSizeName.ISO_A4);
aset.add(Sides.DUPLEX);
PrintService[] services =
PrintServiceLookup.lookupPrintServices(psInFormat, aset);
if (services.length > 0) {
    DocPrintJob job = services[0].createPrintJob();
    try {
        job.print(myDoc, aset);
    } catch (PrintException pe) {}
}

Обратите внимание: в API javax.print параметр-ссылка null для методов является недопустимым, если только в документации к методу явно не указано, что он имеет смысловую интерпретацию. Использование такого параметра вопреки этому правилу является ошибкой в коде и может привести к исключению во время выполнения — немедленно или позднее. IllegalArgumentException и NullPointerException являются примерами типичных и допустимых исключений во время выполнения в таких случаях.

Начиная с версии:
1.4
Внешние спецификации
  • RFC 2911: протокол интернет-печати, версия 1.1: модель и семантика
Пакет Описание
javax.print.attribute
Предоставляет классы и интерфейсы, описывающие типы атрибутов Java Print Service и способы их объединения в наборы атрибутов.
javax.print.event
Пакет javax.print.event содержит классы событий и интерфейсы прослушивателей.
Класс Описание
AttributeException
Интерфейс AttributeException — это интерфейс примеси, который может реализовать подкласс PrintException, чтобы сообщить об ошибке, связанной с одним или несколькими атрибутами печати, не поддерживаемыми конкретным экземпляром службы печати.
CancelablePrintJob
Этот интерфейс используется приложением печати для отмены задания на печать.
Doc
Интерфейс Doc задаёт интерфейс объекта, предоставляющего один фрагмент данных для задания на печать.
DocFlavor
Класс DocFlavor инкапсулирует объект, задающий формат, в котором данные для печати передаются в DocPrintJob.
DocFlavor.BYTE_ARRAY
Класс DocFlavor.BYTE_ARRAY предоставляет предопределённые статические константные объекты DocFlavor, например типы документов, в которых в качестве класса представления данных для печати используется массив байтов (byte[]).
DocFlavor.CHAR_ARRAY
Класс DocFlavor.CHAR_ARRAY предоставляет предопределённые статические константные объекты DocFlavor, например типы документов, в которых в качестве класса представления данных для печати используется массив символов (char[]).
DocFlavor.INPUT_STREAM
Класс DocFlavor.INPUT_STREAM предоставляет предопределённые статические константные объекты DocFlavor, например типы документов, в которых в качестве класса представления данных для печати используется поток байтов (java.io.InputStream).
DocFlavor.READER
Класс DocFlavor.READER предоставляет предопределённые статические константные объекты DocFlavor, например типы документов, в которых в качестве класса представления данных для печати используется символьный поток (java.io.Reader).
DocFlavor.SERVICE_FORMATTED
Класс DocFlavor.SERVICE_FORMATTED предоставляет предопределённые статические константные объекты DocFlavor, например типы документов для данных печати в формате службы.
DocFlavor.STRING
Класс DocFlavor.STRING предоставляет предопределённые статические константные объекты DocFlavor, например типы документов, в которых в качестве класса представления данных для печати используется строка (java.lang.String).
DocFlavor.URL
Класс DocFlavor.URL предоставляет предопределённые статические константные объекты DocFlavor.
DocPrintJob
Этот интерфейс представляет задание на печать, которое может напечатать указанный документ с набором атрибутов задания.
FlavorException
Интерфейс FlavorException — это интерфейс примеси, который может реализовать подкласс PrintException, чтобы сообщить об ошибке, связанной с одним или несколькими типами документов (класс DocFlavor).
MultiDoc
Интерфейс MultiDoc задаёт интерфейс объекта, предоставляющего более одного фрагмента данных для задания на печать.
MultiDocPrintJob
Полученный от MultiDocPrintService объект MultiDocPrintJob может напечатать указанную коллекцию документов как одно задание на печать с набором атрибутов задания.
MultiDocPrintService
Интерфейс MultiPrintService является фабрикой для MultiDocPrintJob.
PrintException
Класс PrintException инкапсулирует ошибку, связанную с печатью, которая возникла при использовании экземпляра службы печати.
PrintService
Интерфейс PrintService является фабрикой для DocPrintJob.
PrintServiceLookup
Реализации этого класса предоставляют службы поиска служб печати (обычно соответствующих принтерам) определённого типа.
ServiceUI
Этот класс представляет собой набор вспомогательных методов пользовательского интерфейса, предоставляющих графический диалог для просмотра служб печати, найденных с помощью API Java Print Service.
ServiceUIFactory
Службы могут при желании предоставлять пользовательские интерфейсы, позволяющие взаимодействовать с ними по-разному в зависимости от роли.
SimpleDoc
Этот класс реализует интерфейс Doc и может использоваться для многих распространённых запросов на печать.
StreamPrintService
Этот класс расширяет PrintService и представляет службу печати, которая выводит данные в различных форматах в выходной поток, предоставленный клиентом.
StreamPrintServiceFactory
Объект StreamPrintServiceFactory является фабрикой экземпляров StreamPrintService, которые могут выводить данные в выходной поток в определённом формате документа, описанном типом MIME.
URIException
Интерфейс URIException — это интерфейс примеси, который может реализовать подкласс PrintException, чтобы сообщить об ошибке, связанной с адресом URI.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/javax/print/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API