Класс PrintServiceLookup
- java.lang.Object
-
- javax.print.PrintServiceLookup
public abstract class PrintServiceLookup extends Object
Реализации этого класса предоставляют службы поиска служб печати (обычно эквивалентных принтерам) определённого типа.
Несколько реализаций могут быть установлены одновременно. Все реализации должны уметь описывать найденные принтеры как экземпляры PrintService. Обычно реализации этого класса службы автоматически обнаруживаются в JAR-файлах (см. спецификацию JAR-файлов SPI). Эти классы должны быть создаваемы с помощью конструктора по умолчанию. В качестве альтернативы приложения могут явно регистрировать экземпляры во время выполнения.
Приложения используют только статические методы этого абстрактного класса. Методы экземпляров реализуются поставщиком сервиса в подклассе, а объединение результатов со всех установленных классов поиска сообщается статическими методами этого класса при вызове приложением.
Реализатор PrintServiceLookup рекомендуется проверять наличие SecurityManager.checkPrintJobAccess() чтобы запретить доступ к небезопасным кодам. Следование этой рекомендуемой политике означает, что небезопасный код не сможет обнаружить какие-либо службы печати. Загружаемые апплеты являются наиболее распространённым примером небезопасного кода.
Эта проверка выполняется для каждой службы поиска, чтобы обеспечить гибкость в политике, отражающую потребности различных служб поиска.
Службы, зарегистрированные с помощью registerService(PrintService), не будут включены в результаты поиска, если установлена система безопасности, и её метод checkPrintJobAccess() запрещает доступ.
Конструкторы
| Конструктор | Описание |
|---|---|
PrintServiceLookup() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract PrintService | getDefaultPrintService() | Не вызывается напрямую приложениями. |
abstract MultiDocPrintService[] | getMultiDocPrintServices(DocFlavor[] flavors,
AttributeSet attributes) | Не вызывается напрямую приложениями. |
abstract PrintService[] | getPrintServices() | Не вызывается напрямую приложениями. |
abstract PrintService[] | getPrintServices(DocFlavor flavor,
AttributeSet attributes) | Находит службы, которые могут подтвердить поддержку комбинации атрибутов и |
static PrintService | lookupDefaultPrintService() | Находит службу печати по умолчанию для этой среды. |
static MultiDocPrintService[] | lookupMultiDocPrintServices(DocFlavor[] flavors,
AttributeSet attributes) | Находит службы печати, способные печатать |
static PrintService[] | lookupPrintServices(DocFlavor flavor,
AttributeSet attributes) | Находит службы печати, способные печатать указанный |
static boolean | registerService(PrintService service) | Позволяет приложению напрямую зарегистрировать экземпляр класса, реализующего службу печати. |
static boolean | registerServiceProvider(PrintServiceLookup sp) | Позволяет приложению явно зарегистрировать класс, реализующий службы поиска. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
PrintServiceLookup
public PrintServiceLookup()
Методы
lookupPrintServices
public static final PrintService[] lookupPrintServices(DocFlavor flavor,
AttributeSet attributes) Находит службы печати, способные печатать указанный DocFlavor.
- Параметры:
-
flavor- тип документа для печати. Еслиnull, это ограничение не используется. -
attributes- атрибуты, которые должна поддерживать служба печати. Еслиnull, это ограничение не используется. - Возвращает:
- массив совпадающих
PrintServiceобъектов, представляющих службы печати, которые поддерживают указанные атрибуты типа документа. Если нет совпадений, массив пуст.
lookupMultiDocPrintServices
public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] flavors,
AttributeSet attributes) Находит службы печати, способные печатать MultiDoc содержащие все указанные типы документов.
Этот метод полезен для поиска службы, которая может печатать MultiDoc элементы которых могут иметь различные типы документов. Приложение может сделать это само, выполняя многократные запросы для каждого DocFlavor поочередно и сводя результаты, но служба поиска может сделать это более эффективно.
- Параметры:
-
flavors- типы документов для печати. Еслиnullили пусто, это ограничение не используется. В противном случае возвращаются только службы многодокументной печати, которые могут печатать все указанные типы документов. -
attributes- атрибуты, которые должна поддерживать служба печати. Еслиnull, это ограничение не используется. - Возвращает:
- массив совпадающих
MultiDocPrintServiceобъектов. Если нет совпадений, массив пуст.
lookupDefaultPrintService
public static final PrintService lookupDefaultPrintService()
Находит службу печати по умолчанию для данной среды. Может вернуть null. Если несколько служб поиска указывают на значение по умолчанию, выбранная служба не определяется точно, но обычно возвращается служба, встроенная в платформу, а не установленная служба. Если чётко не определена служба печати по умолчанию, встроенная в платформу, служба по умолчанию выбирается первым способом, зависящим от реализации.
Это может включать использование любого API настроек, доступного в рамках Java или нативной платформы. Этот алгоритм может быть переопределён пользователем, установив свойство javax.print.defaultPrinter. Указанная служба должна быть обнаружена как действительная и доступная в настоящий момент, чтобы быть возвращённой как служба по умолчанию.
- Возвращает:
- службу печати по умолчанию
registerServiceProvider
public static boolean registerServiceProvider(PrintServiceLookup sp)
Позволяет приложению явно зарегистрировать класс, реализующий службы поиска. Регистрация не сохраняется при повторном запуске виртуальной машины. Это полезно, если приложению нужно сделать доступной новую службу, которая не входит в установку. Если служба поиска уже зарегистрирована или не может быть зарегистрирована, метод возвращает false.
- Параметры:
-
sp- реализация службы поиска - Возвращает:
-
trueесли новая служба поиска успешно зарегистрирована;falseв противном случае
registerService
public static boolean registerService(PrintService service)
Позволяет приложению напрямую зарегистрировать экземпляр класса, реализующего службу печати. Операции поиска по этой службе будут выполняться классом PrintServiceLookup с использованием атрибутов и классов, сообщённых службой. Это может быть менее эффективным, чем служба поиска, настроенная для этой службы. Поэтому рекомендуется регистрировать экземпляр PrintServiceLookup вместо этого. Метод возвращает true если служба не была ранее зарегистрирована и теперь успешно зарегистрирована. Этот метод не следует вызывать с StreamPrintService экземплярами. Они всегда не будут зарегистрированы, и метод вернёт false.
- Параметры:
-
service- реализация службы печати - Возвращает:
-
trueесли служба успешно зарегистрирована;falseв противном случае
getPrintServices
public abstract PrintService[] getPrintServices(DocFlavor flavor,
AttributeSet attributes) Находит службы, которые могут подтвердить поддержку комбинации атрибутов и DocFlavors указанных. Этот метод не вызывается напрямую приложениями.
Реализуется поставщиком сервиса, используется статическими методами этого класса.
Результаты должны быть такими же, как получение всех PrintServices и запрос каждого из них индивидуально на поддержку указанных атрибутов и типов документов, но процесс может быть более эффективным, используя возможности служб поиска для служб печати.
- Параметры:
-
flavor- тип документа. Еслиnull, он игнорируется. -
attributes- требуемые атрибуты. Еслиnullэто ограничение не используется. - Возвращает:
- массив совпадающих
PrintServices. Если нет совпадений, массив пуст.
getPrintServices
public abstract PrintService[] getPrintServices()
Не вызывается напрямую приложениями. Реализуется поставщиком сервиса, используется статическими методами этого класса.
- Возвращает:
- массив всех
PrintServicesизвестных этой службе поиска. Если ничего не найдено, массив пуст.
getMultiDocPrintServices
public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] flavors,
AttributeSet attributes) Не вызывается напрямую приложениями.
Реализуется поставщиком сервиса, используется статическими методами этого класса.
Находит службы печати, которые могут подтвердить поддержку комбинации атрибутов и DocFlavors указанных.
- Параметры:
-
flavors- типы документов. Еслиnullили пусто, он игнорируется. -
attributes- требуемые атрибуты. Еслиnullэто ограничение не используется. - Возвращает:
- массив совпадающих
PrintServices. Если нет совпадений, массив пуст.
getDefaultPrintService
public abstract PrintService getDefaultPrintService()
Не вызывается напрямую приложениями. Реализуется поставщиком сервиса и вызывается службой поиска печати.
- Возвращает:
- службу печати по умолчанию для этой службы поиска. Если нет службы по умолчанию, возвращает
null.
© 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/PrintServiceLookup.html