Spec-Zone.ru › OpenJDK 25

Интерфейс 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(PrintServiceAttributeListener)

removePrintServiceAttributeListener

void removePrintServiceAttributeListener(PrintServiceAttributeListener listener)
Удаляет прослушиватель службы печати из этой службы печати. Это означает, что прослушиватель больше не заинтересован в событиях PrintService.
Параметры:
listener — объект PrintServiceAttributeListener
См. также:
  • addPrintServiceAttributeListener(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).
  • Возврат единственного объекта (класса, отличного от категории атрибута), задающего границы допустимых значений; например, так поступает атрибут с целочисленным значением, которое должно находиться в определенном диапазоне.
Параметры:
category — проверяемая категория атрибута печати. Она должна быть Class, реализующим интерфейс Attribute.
flavor — тип документа для предполагаемого задания или null
attributes — набор атрибутов печати для предполагаемого задания (как атрибутов уровня задания, так и уровня документа) или null
Возвращает:
объект, указывающий поддерживаемые значения для category, или null, если эта служба печати не поддерживает указание атрибута уровня документа или задания в категории category в запросе на печать
Исключения:
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(...).

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

getUnsupportedAttributes

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

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

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

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

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

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

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

getServiceUIFactory

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

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(Object)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/print/PrintService.html

Spec-Zone.ru

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