Класс PrintServiceLookup
public abstract class PrintServiceLookup extends Object
Несколько реализаций могут быть установлены одновременно. Все реализации должны уметь описывать найденные принтеры как экземпляры PrintService. Обычно реализации этого класса службы автоматически обнаруживаются в файлах JAR (см. спецификацию файла JAR SPI). Эти классы должны быть создаваемы с помощью конструктора по умолчанию. В качестве альтернативы приложения могут явно регистрировать экземпляры во время выполнения.
Приложения используют только статические методы этого абстрактного класса. Методы экземпляра реализуются поставщиком сервиса в подклассе, а объединение результатов от всех установленных классов поиска сообщается статическими методами этого класса, когда их вызывает приложение.
Реализатор PrintServiceLookup рекомендуется проверять наличие SecurityManager.checkPrintJobAccess() для отказа в доступе к небезопасным кодам. Следуя этой рекомендации, небезопасные коды не смогут найти какие-либо службы печати. Самым распространённым примером небезопасного кода являются загруженные апплеты.
Эта проверка выполняется для каждой службы поиска, чтобы предоставить гибкость в политике, отражающей потребности различных служб поиска.
Сервисы, зарегистрированные с помощью registerService(PrintService), не будут включены в результаты поиска, если установлен менеджер безопасности, и его метод checkPrintJobAccess() отказывает в доступе.
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract PrintService |
getDefaultPrintService() |
Не вызывается напрямую приложениями. |
abstract MultiDocPrintService[] |
getMultiDocPrintServices |
Не вызывается напрямую приложениями. |
abstract PrintService[] |
getPrintServices() |
Не вызывается напрямую приложениями. |
abstract PrintService[] |
getPrintServices |
Ищет службы, которые могут положительно подтвердить поддержку комбинации атрибутов и DocFlavors указанных. |
static final PrintService |
lookupDefaultPrintService() |
Ищет стандартную службу печати для этой среды. |
static final MultiDocPrintService[] |
lookupMultiDocPrintServices |
Ищет MultiDoc службу печати, способную печатать MultiDocs содержащую все указанные типы документов. |
static final PrintService[] |
lookupPrintServices |
Ищет службы печати, способные печатать указанные DocFlavor. |
static boolean |
registerService |
Позволяет приложению напрямую зарегистрировать экземпляр класса, реализующего службу печати. |
static boolean |
registerServiceProvider |
Позволяет приложению явно зарегистрировать класс, реализующий службы поиска. |
Подробное описание конструкторов
PrintServiceLookup
protected 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 службы Services печати, способные печатать MultiDocs, содержащие все указанные типы документов. Этот метод полезен для поиска службы, которая может печатать MultiDoc, элементы которого могут иметь разные форматы. Приложение может выполнить это самостоятельно, выполнив несколько поисков для каждого DocFlavor по очереди и объединив результаты, но служба поиска может сделать это более эффективно.
- Параметры:
-
flavors- форматы для печати. Еслиnullили пусто, это ограничение не используется. В противном случае возвращаются только службы печати мультидокументов, которые могут печатать все указанные типы документов. -
attributes- атрибуты, которые должна поддерживать служба печати. Еслиnull, это ограничение не используется. - Возвращает:
- массив соответствующих
MultiDocPrintServiceобъектов. Если сервисов не найдено, массив имеет нулевую длину.
lookupDefaultPrintService
public static final PrintService lookupDefaultPrintService()
null. Если несколько служб поиска указывают значение по умолчанию, выбранная служба не определена точно, но обычно возвращается служба платформы, а не установленная служба, по умолчанию. Если нет четко определяемой службы печати по умолчанию платформы, по умолчанию является первая найденная служба, выбранная в зависимости от реализации. Это может включать использование любого API настроек, доступного в рамках Java или родной платформы. Этот алгоритм может быть переопределен пользователем путем установки свойства javax.print.defaultPrinter. Указанная служба должна быть обнаружена как действительная и доступная в настоящее время, чтобы быть возвращена как значение по умолчанию.
- Возвращает:
- стандартную
PrintService
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)
Реализуется поставщиком услуг, используется статическими методами этого класса.
Находит MultiDoc службы печати, которые могут быть положительно подтверждены как поддерживающие сочетание атрибутов и DocFlavors , указанные.
- Параметры:
-
flavors- требуемых документов. Еслиnullили пусто, оно игнорируется. -
attributes- которые должны быть поддержаны. Еслиnull, это ограничение не используется. - Возвращает:
- массив соответствующих
PrintServices. Если сервисов не найдено, массив имеет нулевую длину.
getDefaultPrintService
public abstract PrintService getDefaultPrintService()
- Возвращает:
- службу по умолчанию
PrintServiceдля этой службы поиска. Если по умолчанию нет, возвращаетnull.
© 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/PrintServiceLookup.html