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