Пакет javax.print
- Обнаруживать и выбирать службы печати на основе их возможностей
- Указывать формат данных печати
- Отправлять задания печати в службы, поддерживающие тип документа, который нужно распечатать.
Обнаружение службы печати
Приложение вызывает статические методы абстрактного класса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, выполняет эти шаги для обработки запроса на печать:- Выбирает
DocFlavor. - Создает набор атрибутов.
- Находит службу печати, которая может обработать запрос на печать, как указано в
DocFlavorи наборе атрибутов. - Создает объект
Doc, инкапсулирующийDocFlavorи фактические данные печати, которые могут принимать множество форм, включая: файл Postscript, изображение JPEG,URL, или обычный текст. - Получает задание печати, представленное
DocPrintJob, из службы печати. - Вызывает метод print задания печати.
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
| Класс | Описание |
|---|---|
| AttributeException | Интерфейс AttributeException является интерфейсом-миксином, который подкласс PrintException может реализовать, чтобы сообщить об ошибочном состоянии, связанном с одним или несколькими атрибутами печати, которые не поддерживает конкретный экземпляр службы печати. |
| CancelablePrintJob | Этот интерфейс используется приложением печати для отмены задания печати. |
| Doc | Интерфейс Doc определяет интерфейс для объекта, который предоставляет один фрагмент данных печати для задания печати. |
| DocFlavor | Класс DocFlavor инкапсулирует объект, который определяет формат, в котором данные печати предоставляются DocPrintJob. |
| DocFlavor.BYTE_ARRAY | Класс DocFlavor.BYTE_ARRAY предоставляет предопределенные статические константы DocFlavor объекты для примеров doc-форматов, использующих массив байтов (byte[]) в качестве класса представления данных печати. |
| DocFlavor.CHAR_ARRAY | Класс DocFlavor.CHAR_ARRAY предоставляет предопределенные статические константы DocFlavor объекты для примеров doc-форматов, использующих массив символов (char[]) в качестве класса представления данных печати. |
| DocFlavor.INPUT_STREAM | Класс DocFlavor.INPUT_STREAM предоставляет предопределенные статические константы DocFlavor объекты для примеров doc-форматов, использующих байтовый поток (java.io.InputStream) в качестве класса представления данных печати. |
| DocFlavor.READER | Класс DocFlavor.READER предоставляет предопределенные статические константы DocFlavor объекты для примеров doc-форматов, использующих символьный поток (java.io.Reader) в качестве класса представления данных печати. |
| DocFlavor.SERVICE_FORMATTED | Класс DocFlavor.SERVICE_FORMATTED предоставляет предопределенные статические константы DocFlavor объекты для примеров doc-форматов для данных печати в формате службы. |
| DocFlavor.STRING | Класс DocFlavor.STRING предоставляет предопределенные статические константы DocFlavor объекты для примеров doc-форматов, использующих строку (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. |
| ServiceUIFactory | Службы могут по желанию предоставлять пользовательские интерфейсы, которые позволяют использовать различные стили взаимодействия в разных ролях. |
| SimpleDoc | Этот класс является реализацией интерфейса Doc и может быть использован во многих распространённых запросах печати. |
| StreamPrintService | Этот класс расширяет PrintService и представляет собой службу печати, которая печатает данные в различных форматах в предоставленный клиентом выходной поток. |
| StreamPrintServiceFactory | StreamPrintServiceFactory - это фабрика для экземпляров StreamPrintService, которые могут печатать в выходной поток в определенном формате документа, описанном как MIME-тип. |
| URIException | Интерфейс URIException является интерфейсом-миксином, который подкласс PrintException может реализовать, чтобы сообщить об ошибочном состоянии, связанном с адресом URI. |
© 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/javax/print/package-summary.html