Интерфейс 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. Если клиент создаёт задание печати и не указывает значение атрибута в данной категории, этот 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)
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 только в том случае, если объекты сервиса, которые сравниваются, могут быть взаимозаменяемыми для клиента. Сервисы свободно могут возвращать одну и ту же ссылку на базовый сервис, если это необходимо, но клиенты не должны полагаться на равенство ссылок.
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/print/PrintService.html