Spec-Zone.ru › OpenJDK 24

Интерфейс PrintService

Все известные подинтерфейсы:
MultiDocPrintService
Все известные реализующие классы:
StreamPrintService
public interface PrintService
Интерфейс PrintService является фабрикой для DocPrintJob. PrintService описывает возможности принтера и может быть запрошен для получения поддерживаемых атрибутов принтера.

Пример:


   DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
   PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
   aset.add(MediaSizeName.ISO_A4);
   PrintService[] pservices =
                 PrintServiceLookup.lookupPrintServices(flavor, aset);
   if (pservices.length > 0) {
       DocPrintJob pj = pservices[0].createPrintJob();
       try {
           FileInputStream fis = new FileInputStream("test.ps");
           Doc doc = new SimpleDoc(fis, flavor, null);
           pj.print(doc, aset);
        } catch (FileNotFoundException fe) {
        } catch (PrintException e) {
        }
   }
   

Краткое описание методов

Модификатор и тип Метод Описание
void addPrintServiceAttributeListener(PrintServiceAttributeListener listener)
Регистрирует слушателя событий для этого PrintService.
DocPrintJob createPrintJob()
Создаёт и возвращает PrintJob, способный обрабатывать данные из любого поддерживаемого формата документа.
boolean equals(Object obj)
Определяет, ссылаются ли два сервиса на один и тот же базовый сервис.
<T extends PrintServiceAttribute>
T
getAttribute(Class<T> category)
Получает значение одного указанного атрибута сервиса.
PrintServiceAttributeSet getAttributes()
Получает набор атрибутов описания принтера для этого сервиса печати, отражающих его состояние.
Object getDefaultAttributeValue(Class<? extends Attribute> category)
Определяет значение атрибута печати по умолчанию для данного сервиса в заданной категории.
String getName()
Возвращает строковое имя этого сервиса печати, которое может использоваться приложениями для запроса конкретного сервиса печати.
ServiceUIFactory getServiceUIFactory()
Возвращает фабрику для пользовательских интерфейсов, позволяющих пользователям взаимодействовать с сервисом в различных ролях.
Class<?>[] getSupportedAttributeCategories()
Определяет категории атрибутов печати, которые клиент может указать при настройке задания для данного сервиса печати.
Object getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes)
Определяет значения атрибутов печати, которые клиент может указать в заданной категории при настройке задания для этого сервиса печати.
DocFlavor[] getSupportedDocFlavors()
Определяет форматы данных печати, которые клиент может указать при настройке задания для этого PrintService.
AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes)
Определяет атрибуты, которые не поддерживаются для запроса печати в контексте конкретного DocFlavor.
int hashCode()
Этот метод должен быть реализован согласованно с equals(Object).
boolean isAttributeCategorySupported(Class<? extends Attribute> category)
Определяет, может ли клиент указать заданную категорию атрибута печати при настройке задания для данного сервиса печати.
boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes)
Определяет, может ли клиент указать заданное значение атрибута печати при настройке задания для данного сервиса печати.
boolean isDocFlavorSupported(DocFlavor flavor)
Определяет, поддерживает ли этот сервис печати конкретный DocFlavor.
void removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
Удаляет слушателя сервиса печати из этого сервиса печати.

Подробности методов

getName

String getName()
Возвращает строковое имя этой службы печати, которое приложения могут использовать для запроса определенной службы печати. В подходящем контексте, например, в службе имен, это имя должно быть уникальным. В некоторых средах это уникальное имя может совпадать с дружественным именем принтера, определённым как атрибут PrinterName.
Возвращает:
имя службы

createPrintJob

DocPrintJob createPrintJob()
Создаёт и возвращает PrintJob, способный обрабатывать данные из любого из поддерживаемых форматов документов.
Возвращает:
объект DocPrintJob

addPrintServiceAttributeListener

void addPrintServiceAttributeListener(PrintServiceAttributeListener listener)
Регистрирует слушателя событий для этой службы PrintService.
Параметры:
listener — PrintServiceAttributeListener, отслеживающий состояние службы печати
См. также:
  • removePrintServiceAttributeListener(javax.print.event.PrintServiceAttributeListener)

removePrintServiceAttributeListener

void removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
Удаляет слушателя службы печати из этой службы печати. Это означает, что слушатель больше не интересуется событиями PrintService.
Параметры:
listener — объект PrintServiceAttributeListener
См. также:
  • addPrintServiceAttributeListener(javax.print.event.PrintServiceAttributeListener)

getAttributes

PrintServiceAttributeSet getAttributes()
Получает набор атрибутов описания принтера данной службы печати, отображающий её состояние. Возвращаемый объект набора атрибутов неизменяем. Возвращаемый объект набора атрибутов представляет собой «моментальный снимок» набора атрибутов этой службы печати на момент вызова метода getAttributes(): то есть содержимое возвращаемого набора атрибутов не будет обновлено, если содержимое набора атрибутов этой службы печати изменится в будущем. Для обнаружения изменений значений атрибутов необходимо снова вызвать getAttributes() и сравнить новый набор атрибутов с предыдущим; альтернативно, зарегистрируйте слушателя событий службы печати.
Возвращает:
неизменяемый моментальный снимок набора атрибутов этой службы печати. Может быть пустым, но не null.

getAttribute

<T extends PrintServiceAttribute> T getAttribute(Class<T> category)
Получает значение указанного атрибута службы. Это может быть полезно для клиентов, которым нужно только значение одного атрибута и которые хотят минимизировать издержки.
Параметры типа:
T — тип указанного атрибута службы
Параметры:
category — категория PrintServiceAttribute, поддерживаемая этой службой — не может быть null
Возвращает:
значение поддерживаемого атрибута или null, если атрибут не поддерживается этой службой
Исключения:
NullPointerException — если категория null
IllegalArgumentException — если category не является Class, реализующим интерфейс PrintServiceAttribute

getSupportedDocFlavors

DocFlavor[] getSupportedDocFlavors()
Определяет форматы данных печати, которые клиент может указать при настройке задания для этой службы PrintService. Формат данных печати обозначается «типом документа» (класс DocFlavor), состоящий из типа MIME и класса представления данных печати.

Обратите внимание, что некоторые типы документов могут не поддерживаться в сочетании со всеми атрибутами. Используйте getUnsupportedAttributes(..) для проверки конкретных комбинаций.

Возвращает:
массив поддерживаемых типов документов, должен содержать по крайней мере один элемент

isDocFlavorSupported

boolean isDocFlavorSupported(DocFlavor flavor)
Определяет, поддерживает ли эта служба печати определённый DocFlavor. Это удобный метод определения, будет ли DocFlavor членом результата getSupportedDocFlavors().

Обратите внимание, что некоторые типы документов могут не поддерживаться в сочетании со всеми атрибутами. Используйте getUnsupportedAttributes(..) для проверки конкретных комбинаций.

Параметры:
flavor — DocFlavor для проверки поддержки
Возвращает:
true, если эта служба печати поддерживает указанный DocFlavor; false в противном случае
Исключения:
NullPointerException — если flavor является null

getSupportedAttributeCategories

Class<?>[] getSupportedAttributeCategories()
Определяет категории атрибутов печати, которые клиент может указать при настройке задания для этой службы печати. Категория атрибута печати определяется Class, реализующим интерфейс Attribute. Этот метод возвращает только поддерживаемые категории атрибутов; он не возвращает конкретные поддерживаемые значения атрибутов.

Этот метод возвращает все категории атрибутов печати, которые поддерживает эта служба печати для любого возможного задания. Некоторые категории могут не поддерживаться в определённом контексте (например, для определённого DocFlavor). Используйте один из методов, включающих DocFlavor, для проверки запроса перед его отправкой, например, getSupportedAttributeValues(..).

Возвращает:
массив категорий атрибутов печати, которые клиент может указать как атрибут уровня документа или задания в запросе печати. Каждый элемент массива — Class, реализующий интерфейс Attribute. Массив пуст, если категории не поддерживаются.

isAttributeCategorySupported

boolean isAttributeCategorySupported(Class<? extends Attribute> category)
Определяет, может ли клиент указать заданную категорию атрибута печати при настройке задания для этой службы печати. Категория атрибута печати определяется Class, реализующим интерфейс Attribute. Этот метод показывает, поддерживается ли категория атрибута; он не показывает, поддерживается ли конкретное значение атрибута.

Некоторые категории могут не поддерживаться в конкретном контексте (например, для конкретного DocFlavor). Используйте один из методов, включающих DocFlavor, для проверки запроса перед его отправкой, например, getSupportedAttributeValues(..).

Это удобный метод для определения, будет ли категория членом результата getSupportedAttributeCategories().

Параметры:
category — категория атрибута печати для проверки. Она должна быть Class, реализующим интерфейс Attribute.
Возвращает:
true, если эта служба печати поддерживает указание атрибута уровня документа или задания в category в запросе печати; false в противном случае
Исключения:
NullPointerException — если category является null
IllegalArgumentException — если category не является Class, реализующим интерфейс Attribute

getDefaultAttributeValue

Object getDefaultAttributeValue(Class<? extends Attribute> category)
Определяет значение атрибута печати по умолчанию для данного сервиса печати в заданной категории. Значение атрибута печати — это экземпляр класса, реализующего интерфейс Attribute. Если клиент создаёт задание печати и не указывает значение атрибута в данной категории, этот Print Service использует значение атрибута по умолчанию вместо этого.

Некоторые атрибуты могут быть не поддерживаемы в конкретном контексте (например, для определённого DocFlavor). Используйте один из методов, включающих DocFlavor, для проверки запроса перед его отправкой, например, getSupportedAttributeValues(..).

Не все атрибуты имеют значение по умолчанию. Например, сервис не будет иметь значение по умолчанию для RequestingUser, т.е. null-возврат для поддерживаемой категории означает, что нет значения по умолчанию сервиса для этой категории. Используйте метод isAttributeCategorySupported(Class) для различения этих случаев.

Параметры:
category — категория атрибута печати, для которой запрашивается значение атрибута по умолчанию. Должно быть Class, реализующим интерфейс Attribute.
Возвращает:
значение атрибута по умолчанию для category или null, если этот Print Service не поддерживает указание атрибута уровня документа или задания в category в запросе печати, или сервис не имеет значения по умолчанию для этого атрибута
Исключение:
NullPointerException — если category — null
IllegalArgumentException — если category не является Class, реализующим интерфейс Attribute

getSupportedAttributeValues

Object getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes)
Определяет значения атрибутов печати, которые клиент может указать в данной категории при настройке задания для данного сервиса печати. Значение атрибута печати — это экземпляр класса, реализующего интерфейс Attribute.

Если flavor — null и attributes — null или является пустым множеством, этот метод возвращает все значения атрибутов печати, которые поддерживает этот Print Service для любого возможного задания. Если flavor не null или attributes не является пустым множеством, этот метод возвращает только значения атрибутов печати, совместимые с заданным типом документа и/или набором атрибутов. То есть, возвращаемое значение null может указывать на то, что указание этого атрибута несовместимо с указанным DocFlavor. Также, если DocFlavor не null, оно должно быть типом, поддерживаемым этим PrintService, иначе будет брошено исключение IllegalArgumentException.

Если параметр attributes содержит атрибут, чья категория совпадает с параметром category, сервис должен проигнорировать этот атрибут в AttributeSet.

Атрибуты, которые должны быть указаны в Doc, должны быть включены в этот набор для точного представления контекста.

Этот метод возвращает Object, так как разные категории атрибутов печати указывают на поддерживаемые значения атрибутов по-разному. Документация по каждому атрибуту печати в пакете javax.print.attribute.standard описывает, как каждый атрибут указывает на свои поддерживаемые значения. Возможные способы указания поддержки включают:

  • Возврат одиночного экземпляра категории атрибута для указания того, что любое значение является допустимым — используется, например, для атрибута, значением которого является произвольная строка текста. (Значение возвращаемого объекта атрибута несущественно.)
  • Возврат массива из одного или нескольких экземпляров категории атрибута, содержащих допустимые значения — используется, например, для атрибута со списком перечислений. Тип массива является массивом указанного типа категории атрибута, как возвращается его getCategory(Class).
  • Возврат одиночного объекта (иного класса, чем категория атрибута), который указывает границы допустимых значений — используется, например, для атрибута целого типа, который должен находиться в определённом диапазоне.
Параметры:
category — категория атрибута печати для проверки. Должно быть Class, реализующим интерфейс Attribute.
flavor — тип документа для предполагаемого задания, или null
attributes — набор атрибутов печати для предполагаемого задания (как атрибуты уровня задания, так и уровня документа), или null
Возвращает:
объект, указывающий поддерживаемые значения для category, или null, если этот Print Service не поддерживает указание атрибута уровня документа или задания в category в запросе печати
Исключение:
NullPointerException — если category — null
IllegalArgumentException — если category не является Class, реализующим интерфейс Attribute, или DocFlavor не поддерживается этим сервисом

isAttributeValueSupported

boolean isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes)
Определяет, может ли клиент указать данное значение атрибута печати при настройке задания для данного Print Service. Значение атрибута печати — это экземпляр класса, реализующего интерфейс Attribute.

Если flavor — null и attributes — null или является пустым множеством, этот метод определяет, поддерживает ли данный Print Service данное значение атрибута печати для некоторой возможной комбинации типа документа и набора атрибутов. Если flavor не null или attributes не является пустым множеством, этот метод определяет, поддерживает ли этот Print Service данное значение атрибута печати в сочетании с данным типом документа и/или набором атрибутов.

Также, если DocFlavor не null, оно должно быть типом, поддерживаемым этим PrintService, иначе будет брошено исключение IllegalArgumentException.

Атрибуты, которые должны быть указаны в Doc, должны быть включены в этот набор для точного представления контекста.

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

Параметры:
attrval — значение атрибута печати для проверки
flavor — тип документа для предполагаемого задания, или null
attributes — набор атрибутов печати для предполагаемого задания (как атрибуты уровня задания, так и уровня документа), или null
Возвращает:
true, если этот Print Service поддерживает указание attrval как атрибута уровня документа или задания в запросе печати, false, если нет
Исключение:
NullPointerException — если attrval — null
IllegalArgumentException — если тип не поддерживается этим PrintService

getUnsupportedAttributes

AttributeSet getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes)
Определяет атрибуты, которые не поддерживаются для запроса печати в контексте конкретного DocFlavor. Этот метод полезен для проверки потенциального задания печати и определения конкретных атрибутов, которые не могут быть поддержаны. Важно предоставить только поддерживаемый DocFlavor, иначе будет брошено исключение IllegalArgumentException. Если возвращаемое значение этого метода — null, все атрибуты поддерживаются.

Атрибуты, которые должны быть указаны в Doc, должны быть включены в этот набор для точного представления контекста.

Если возвращаемое значение — non-null, все атрибуты в возвращённом наборе не поддерживаются с этим DocFlavor. Возвращаемый набор не различает категории атрибутов, которые не поддерживаются, от неподдерживаемых значений атрибутов.

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

Если какие-либо атрибуты не поддерживаются только потому, что они конфликтуют с другими атрибутами, то выбор атрибута(ов), которые будут определены как причина конфликта, остаётся на усмотрение сервиса.

Используйте isDocFlavorSupported() для проверки того, что DocFlavor поддерживается перед вызовом этого метода.

Параметры:
flavor — тип документа для проверки, или null
attributes — набор атрибутов печати для предполагаемого задания (как атрибуты уровня задания, так и уровня документа), или null
Возвращает:
null, если этот Print Service поддерживает спецификацию запроса печати, иначе — неподдерживаемые атрибуты
Исключение:
IllegalArgumentException — если flavor не поддерживается этим PrintService

getServiceUIFactory

ServiceUIFactory getServiceUIFactory()
Возвращает фабрику для пользовательских интерфейсных компонентов, позволяющих пользователям взаимодействовать с сервисом в различных ролях. Сервисы, не предоставляющие пользовательский интерфейс, должны возвращать null. Службы печати, которые предоставляют UI, но хотят быть поддерживаемыми в среде без UI, должны убедиться, что фабрика не инициализирована, если приложение не вызвало этот метод для получения фабрики. Дополнительная информация доступна в ServiceUIFactory.
Возвращает:
null или фабрику для UI-компонентов

equals

boolean equals(Object obj)
Определяет, ссылаются ли два сервиса на один и тот же базовый сервис. Объекты, инкапсулирующие службу печати, могут не проявлять равенство ссылок, даже если они ссылаются на один и тот же базовый сервис.

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

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

Переопределяет:
equals в классе Object
Параметры:
obj - объект ссылки для сравнения
Возвращает:
true, если этот сервис такой же, как аргумент obj, false в противном случае
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Этот метод должен быть реализован согласованно с equals(Object).
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого объекта
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 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/PrintService.html

Spec-Zone.ru

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