Интерфейс 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- еслиflavornull
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- еслиcategorynull -
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- еслиcategorynull -
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если эта служба печати не поддерживает указание атрибута уровня документа или задания вcategoryв запросе печати - 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:
hashCode
int hashCode()
equals(Object). - Overrides:
-
hashCodeв классеObject - Returns:
- хеш-код этого объекта
- See Also:
© 1993, 2023, 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/21/docs/api/java.desktop/javax/print/PrintService.html