Spec-Zone.ru › OpenJDK 24

Пакет 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 Internet Printing Protocol, 1.1: Model and Semantics, от сентября 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. Вызывает метод print задания печати.
Следующий пример кода демонстрирует типичное использование 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) {}
 }
 

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

Since:
1.4
Внешние спецификации
  • RFC 2911: Internet Printing Protocol/1.1: Модель и семантика
Пакет Описание
javax.print.attribute
Предоставляет классы и интерфейсы, которые описывают типы атрибутов службы печати Java и способы их объединения в наборы атрибутов.
javax.print.event
Пакет javax.print.event содержит классы событий и интерфейсы слушателей.
Класс Описание
AttributeException
Интерфейс AttributeException — это интерфейс-микcин, который подкласс 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 — это интерфейс-микcин, который подкласс PrintException может реализовать для сообщения об ошибочном состоянии, связанном с типом документа или типами документов (класс DocFlavor).
MultiDoc
Интерфейс MultiDoc определяет интерфейс для объекта, который предоставляет более одного фрагмента данных печати для задания печати.
MultiDocPrintJob
Полученный от MultiDocPrintService, a MultiDocPrintJob может печатать указанную коллекцию документов как одно задание печати с набором атрибутов задания.
MultiDocPrintService
Интерфейс MultiPrintService является фабрикой для MultiDocPrintJob.
PrintException
Класс PrintException инкапсулирует связанное с печатью состояние ошибки, возникшее при использовании экземпляра службы печати.
PrintService
Интерфейс PrintService является фабрикой для DocPrintJob.
PrintServiceLookup
Реализации этого класса предоставляют службы поиска для служб печати (как правило, эквивалентных принтерам) определенного типа.
ServiceUI
Этот класс представляет собой набор удобных методов пользовательского интерфейса, которые предоставляют диалоговое окно графического пользователя для просмотра служб печати, найденных с помощью API Java Print Service.
ServiceUIFactory
Услуги могут по желанию предоставлять пользовательские интерфейсы, которые позволяют использовать различные стили взаимодействия в различных ролях.
SimpleDoc
Этот класс представляет собой реализацию интерфейса Doc, которую можно использовать во многих распространённых запросах печати.
StreamPrintService
Этот класс расширяет PrintService и представляет собой службу печати, которая печатает данные в разных форматах в поток вывода, предоставленный клиентом.
StreamPrintServiceFactory
A StreamPrintServiceFactory является фабрикой для экземпляров StreamPrintService, которые могут печатать в поток вывода в определенном формате документа, описанном как тип MIME.
URIException
Интерфейс URIException — это интерфейс-микcин, который подкласс PrintException может реализовать для сообщения об ошибочном состоянии, связанном с адресом URI.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/print/package-summary.html

Spec-Zone.ru

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