Пакет javax.print

Предоставляет основные классы и интерфейсы для API службы печати Java™. API службы печати Java позволяет клиентским и серверным приложениям:

  • Выявлять и выбирать службы печати на основе их возможностей
  • Указывать формат данных печати
  • Отправлять задания печати в службы, поддерживающие тип документа, который необходимо напечатать.

Обнаружение службы печати

Приложение вызывает статические методы абстрактного класса 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, выполняет эти шаги для обработки запроса на печать:
  1. Выбирает DocFlavor.
  2. Создает набор атрибутов.
  3. Находит службу печати, которая может обработать запрос на печать, как указано DocFlavor и набором атрибутов.
  4. Создает объект Doc, инкапсулирующий DocFlavor и фактические данные печати, которые могут принимать множество форм, включая: файл Postscript, изображение JPEG, URL, или обычный текст.
  5. Получает задание печати, представленное DocPrintJob, из службы печати.
  6. Вызывает метод печати задания печати.
Следующий пример кода демонстрирует типичное использование API службы печати Java: поиск принтеров, которые могут печатать пять двусторонних копий документа Postscript на бумаге формата А4, создание задания печати из одной из возвращенных служб печати и вызов печати.
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
Интерфейс Описание
AttributeException

Интерфейс AttributeException — это интерфейс-микшин, который подкласс PrintException может реализовать для сообщения об ошибке, связанной с одним или несколькими атрибутами печати, которые конкретный экземпляр службы печати не поддерживает.

CancelablePrintJob

Этот интерфейс используется приложением печати для отмены задания печати.

Doc

Интерфейс Doc определяет интерфейс для объекта, который предоставляет одну часть данных печати для задания печати.

DocPrintJob

Этот интерфейс представляет задание печати, которое может печатать указанный документ с набором атрибутов задания.

FlavorException

Интерфейс FlavorException — это интерфейс-микшин, который подкласс PrintException может реализовать для сообщения об ошибке, связанной с типом документа или типами документов (класс DocFlavor).

MultiDoc

Интерфейс MultiDoc определяет интерфейс для объекта, который предоставляет более одной части данных печати для задания печати.

MultiDocPrintJob

Полученный из MultiDocPrintService, MultiDocPrintJob может печатать указанную коллекцию документов как одно задание печати с набором атрибутов задания.

MultiDocPrintService

Интерфейс MultiPrintService является фабрикой для MultiDocPrintJob.

PrintService

Интерфейс PrintService является фабрикой для DocPrintJob.

URIException

Интерфейс URIException — это интерфейс-микшин, который подкласс PrintException может реализовать для сообщения об ошибке, связанной с адресом URI.

Класс Описание
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 объекты.

PrintServiceLookup

Реализации этого класса предоставляют службы поиска для служб печати (обычно эквивалентных принтерам) определенного типа.

ServiceUI

Этот класс — это набор удобных методов пользовательского интерфейса, которые предоставляют графический диалог пользователя для просмотра служб печати, найденных через API службы печати Java.

ServiceUIFactory

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

SimpleDoc

Этот класс — это реализация интерфейса Doc , который можно использовать во многих распространённых запросах печати.

StreamPrintService

Этот класс расширяет PrintService и представляет службу печати, которая печатает данные в разных форматах в поток вывода, предоставленный клиентом.

StreamPrintServiceFactory

StreamPrintServiceFactory является фабрикой для экземпляров StreamPrintService, которые могут печатать в поток вывода в определенном формате документа, описанном как MIME-тип.

Исключение Описание
PrintException

Класс PrintException инкапсулирует ошибку, связанную с печатью, которая произошла при использовании экземпляра службы печати.

© 1993, 2020, 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/11/docs/api/java.desktop/javax/print/package-summary.html

Spec-Zone .ru
спецификации, руководства, описания, API