Spec-Zone.ru › OpenJDK 17

Интерфейс 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()
Возвращает фабрику для UI-компонентов, позволяющих пользователям взаимодействовать с сервисом в различных ролях.
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. Если клиент настраивает задание печати и не указывает никакого значения атрибута в данной категории, эта служба печати будет использовать значение атрибута по умолчанию вместо этого.

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

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

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

getSupportedAttributeValues

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

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

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

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

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

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

isAttributeValueSupported

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

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

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

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

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

Parameters:
attrval - значение атрибута печати для проверки
flavor - тип документа для предполагаемого задания, или null
attributes - набор атрибутов печати для предполагаемого задания (атрибуты уровня задания и уровня документа), или null
Returns:
true если эта служба печати поддерживает указание attrval в качестве атрибута уровня документа или уровня задания в запросе печати, false если не поддерживает
Throws:
NullPointerException - если attrval равно null
IllegalArgumentException - если тип не поддерживается этой PrintService

getUnsupportedAttributes

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

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

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

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

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

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

Parameters:
flavor - тип документа для проверки, или null
attributes - набор атрибутов печати для предполагаемого задания (атрибуты уровня задания и уровня документа), или null
Returns:
null если эта служба печати поддерживает спецификацию запроса печати, иначе неподдерживаемые атрибуты
Throws:
IllegalArgumentException - если flavor не поддерживается этой PrintService

getServiceUIFactory

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

equals

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

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

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

Overrides:
equals в классе Object
Parameters:
obj - объект ссылки, с которым сравнивать
Returns:
true если эта служба такая же, как аргумент obj, false в противном случае
See Also:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Этот метод должен быть реализован согласованно с equals(Object).
Overrides:
hashCode в классе Object
Returns:
хеш-код этого объекта
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

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

Spec-Zone.ru

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