Пакет 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, от службы печати. - Вызывает метод печати задания печати.
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 может реализовать для сообщения об ошибке, связанной с одним или несколькими атрибутами печати, которые конкретный экземпляр Print Service не поддерживает. |
| 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 может реализовать для сообщения об ошибке, связанной с типом doc или типами (класс DocFlavor). |
| MultiDoc | Интерфейс MultiDoc определяет интерфейс для объекта, предоставляющего более одного фрагмента данных для задания печати. |
| MultiDocPrintJob | Полученный от MultiDocPrintService, MultiDocPrintJob может распечатать указанную коллекцию документов как одно задание печати с набором атрибутов задания. |
| MultiDocPrintService | Интерфейс MultiPrintService является фабрикой для MultiDocPrintJob. |
| PrintException | Класс PrintException инкапсулирует ошибку, связанную с печатью, возникшую во время использования экземпляра Print Service. |
| PrintService | Интерфейс PrintService является фабрикой для DocPrintJob. |
| PrintServiceLookup | Реализации этого класса предоставляют службы поиска для служб печати (обычно эквивалентных принтерам) определенного типа. |
| ServiceUI | Этот класс — это набор удобных методов пользовательского интерфейса, которые предоставляют диалоговое окно графического пользовательского интерфейса для просмотра служб печати, найденных с помощью API Java Print Service. |
| ServiceUIFactory | Службы могут по желанию предоставлять пользовательские интерфейсы, которые позволяют использовать различные стили взаимодействия в различных ролях. |
| SimpleDoc | Этот класс является реализацией интерфейса Doc и может использоваться во многих распространённых запросах печати. |
| StreamPrintService | Этот класс расширяет PrintService и представляет собой службу печати, которая печатает данные в различных форматах в поток вывода, предоставленный клиентом. |
| StreamPrintServiceFactory | StreamPrintServiceFactory — это фабрика для экземпляров StreamPrintService, которые могут печатать в поток вывода в определенном формате документа, описанном как тип MIME. |
| URIException | Интерфейс URIException — это интерфейс-микшин, который подкласс PrintException может реализовать для сообщения об ошибке, связанной с адресом URI. |
© 1993, 2021, 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/17/docs/api/java.desktop/javax/print/package-summary.html