Интерфейс 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) | Регистрирует слушателя для событий на этом |
DocPrintJob | createPrintJob() | Создаёт и возвращает |
boolean | equals(Object obj) | Определяет, ссылаются ли два сервиса на один и тот же базовый сервис. |
<T extends PrintServiceAttribute> | getAttribute(Class<T> category) | Получает значение одного указанного атрибута сервиса. |
PrintServiceAttributeSet | getAttributes() | Получает набор атрибутов описания принтера для этого Print Service, отображающих его состояние. |
Object | getDefaultAttributeValue(Class<? extends Attribute> category) | Определяет значение атрибута печати по умолчанию для данного сервиса в заданной категории. |
String | getName() | Возвращает строковое имя этого print сервиса, которое может быть использовано приложениями для запроса конкретного print сервиса. |
ServiceUIFactory | getServiceUIFactory() | Возвращает фабрику для компонентов пользовательского интерфейса, которые позволяют пользователям взаимодействовать с сервисом в различных ролях. |
Class<?>[] | getSupportedAttributeCategories() | Определяет категории атрибутов печати, которые клиент может указать при настройке задания для этого print сервиса. |
Object | getSupportedAttributeValues(Class<? extends Attribute> category,
DocFlavor flavor,
AttributeSet attributes) | Определяет значения атрибутов печати, которые клиент может указать в заданной категории при настройке задания для этого print сервиса. |
DocFlavor[] | getSupportedDocFlavors() | Определяет форматы данных печати, которые клиент может указать при настройке задания для этого |
AttributeSet | getUnsupportedAttributes(DocFlavor flavor,
AttributeSet attributes) | Идентифицирует атрибуты, которые не поддерживаются для запроса печати в контексте конкретного |
int | hashCode() | Этот метод должен быть реализован согласованно с |
boolean | isAttributeCategorySupported(Class<? extends Attribute> category) | Определяет, может ли клиент указать заданную категорию атрибутов печати при настройке задания для этого print сервиса. |
boolean | isAttributeValueSupported(Attribute attrval,
DocFlavor flavor,
AttributeSet attributes) | Определяет, может ли клиент указать заданное значение атрибута печати при настройке задания для этого Print Service. |
boolean | isDocFlavorSupported(DocFlavor flavor) | Определяет, поддерживает ли этот print сервис определённый |
void | removePrintServiceAttributeListener(PrintServiceAttributeListener listener) | Удаляет слушателя print-сервиса из этого print сервиса. |
Методы
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- если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:
-
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, 2020, 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/11/docs/api/java.desktop/javax/print/PrintService.html