Пакет 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, выполняет эти шаги для обработки запроса на печать:- Выбирает
DocFlavor. - Создает набор атрибутов.
- Находит службу печати, которая может обработать запрос на печать, как указано
DocFlavorи набором атрибутов. - Создает объект
Doc, инкапсулирующийDocFlavorи фактические данные печати, которые могут принимать множество форм, включая: файл Postscript, изображение JPEG,URL, или обычный текст. - Получает задание печати, представленное
DocPrintJob, из службы печати. - Вызывает метод печати задания печати.
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 | Интерфейс |
| CancelablePrintJob | Этот интерфейс используется приложением печати для отмены задания печати. |
| Doc | Интерфейс |
| DocPrintJob | Этот интерфейс представляет задание печати, которое может печатать указанный документ с набором атрибутов задания. |
| FlavorException | Интерфейс |
| MultiDoc | Интерфейс |
| MultiDocPrintJob | Полученный из |
| MultiDocPrintService | Интерфейс |
| PrintService | Интерфейс |
| URIException | Интерфейс |
| Класс | Описание |
|---|---|
| DocFlavor | Класс |
| DocFlavor.BYTE_ARRAY | Класс |
| DocFlavor.CHAR_ARRAY | Класс |
| DocFlavor.INPUT_STREAM | Класс |
| DocFlavor.READER | Класс |
| DocFlavor.SERVICE_FORMATTED | Класс |
| DocFlavor.STRING | Класс |
| DocFlavor.URL | Класс |
| PrintServiceLookup | Реализации этого класса предоставляют службы поиска для служб печати (обычно эквивалентных принтерам) определенного типа. |
| ServiceUI | Этот класс — это набор удобных методов пользовательского интерфейса, которые предоставляют графический диалог пользователя для просмотра служб печати, найденных через API службы печати Java. |
| ServiceUIFactory | Службы могут по желанию предоставлять пользовательские интерфейсы, которые позволяют использовать различные стили взаимодействия в разных ролях. |
| SimpleDoc | Этот класс — это реализация интерфейса |
| StreamPrintService | Этот класс расширяет |
| StreamPrintServiceFactory |
|
| Исключение | Описание |
|---|---|
| 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