Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации
СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT

Определение местоположения Служб

Приложение определяет местоположение службы печати в немного по-другому путь от определения местоположения потоковой службы печати. Раздел Служб печати Обнаружения объясняет располагающиеся службы печати. Поток Обнаружения Prin t раздел Служб объясняет располагающиеся потоковые службы печати.

Обнаружение Служб печати

Прежде, чем отправить задание печати принтеру, приложение должно найти принтеры, у которых есть возможности обработать задание печати. Чтобы напечатать двусторонний документ, приложение сначала должно найти принтеры, у которых есть двусторонняя печать capabili ty.

javax.print. Класс PrintServiceLookup, включенный в API Службы печати Java, обеспечивает статические методы что использование приложений, чтобы определить местоположение принтеров.

Приложение вызывает lookupPrintServices метод PrintServiceLookup с DocFlavor и AttrbuteSet:

DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);
aset.add(new Copies(2));
PrintService[] service =
        PrintServiceLookup.lookupPrintServices(flavor,
                        aset);
Этот метод возвращает массив служб печати, представляющих принтеры, которым определили возможности в наборе атрибута и могут напечатать формат данных, определенный в разновидности документа. См. Атрибуты c hapter и Определение главы Типов документов для большего количества справки в выборе DocFlavor и создании AttributeSet.

Основной набор принтеров, возвращенных из lookupPrintServices метода, является тем же самым как набором принтеров, возвращенных платформой. Например, при использовании Windows NT, набор возвращенных принтеров является тем же самым как набором принтеров, видимых в Windows Printer Control Panel. Аналогично, при использовании Соляриса, возвращенные принтеры являются тем же самым как перечисленными Unix System V "lpstat" команда. Однако, так как третьи стороны могут увеличить эти наборы, дополнительные принтеры, такие как принтеры JINI, могут быть retu rned.

После получения подходящего PrintService приложение может получить доступ к своим многим методам запроса, чтобы определить, какие значения поддерживаются для категорий атрибута. Получение раздела Задания Печати объясняет как г и заданию печати от PrintService.


Обнаружение Потоковых Служб печати

Приложение использует потоковые службы печати, чтобы преобразовать данные печати в различные форматы. Это полезно, например, если у Вас нет принтера, который может напечатать формат определенной части данных печати. Этот раздел демонстрирует, как преобразовать ДЖИФА d ocument в Постскриптум, используя StreamPrintService.

У класса StreamPrintServiceFactory есть lookupStreamPrintServiceFactories метод для того, чтобы определить местоположение потоковых служб печати. Этот метод, как lookupPrintServices метод в PrintServiceLookup, берет DocFlavor, который представляет тип входного документа - в этом случае, DocFlavor. INPUT_STREAM.GIF. В отличие от lookupPrintServices, этот метод также берет тип MIME. Этот тип MIME представляет формат вывода. Так как этот пример преобразовывает ДЖИФА в постскриптум, тип MIME является "приложением/постскриптумом";. У класса DocFlavor есть getMimeType метод для того, чтобы возвратить тип MIME из DocFlavor. lookupStreamPrintServicesFactories метод возвращает массив объектов StreamPrintServiceFactory, которые являются фабриками для экземпляров StreamPrintService. Этот пример кода демонстрирует, как получать массив объектов StreamPrintServiceFactory, которые могут возвратить объекты StreamPrintService, которые в состоянии преобразовать изображение ДЖИФА в PostScript:

DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;
String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
StreamPrintServiceFactory[] psfactories =
        StreamPrintServiceFactory.lookupStreamPrintServiceFactories(
                flavor, psMimeType);
У объекта StreamPrintServiceFactory есть метод экземпляра, названный getPrintService, который берет параметр OutputStream и создает экземпляр StreamPrintService, который пишет в тот поток:

FileOutputStream fos = new FileOutputStream(filename);
StreamPrintService psService = psfactories[0].getPrintService(fos);
V1.4 JDK включает одну потоковую службу печати, которая может экспортировать Постскриптум от графических вызовов, такой как через Листаемые и Печатаемые интерфейсы. Чтобы проверить доступность этой службы, используйте класс StreamPrintServiceFactory, чтобы попробовать к l ocate это. Печать и Потоковая передача 2-D Графической главы обсуждают передающую потоком 2-D графику.

StreamPrintService реализует PrintService, что означает, что можно использовать StreamPrintService везде, где можно использовать PrintService. Приложение ответственно за закрытие потока вывода после того, как задание напечатало к потоку. Как только поток закрывается, th e экземпляр StreamPrintService больше не может использоваться.



СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT

Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами