Spec-Zone .ru
спецификации, руководства, описания, API
След: 2-D Графика
Урок: Печать
Работа со Службами печати и Атрибутами
Домашняя страница > 2-D Графика > Печать

Работа со Службами печати и Атрибутами

От предыдущих уроков Вы узнали, что Java, 2-D API печати ™ поддерживает обработку изображений страницы, выводит на экран печать и диалоговые окна установки страницы, и определяет атрибуты печати. Печать служб является другим ключевым компонентом любой подсистемы печати.

Служба печати Java™ (JPS) API расширяет текущий Java 2-D функции печати, чтобы предложить следующую функциональность:

API Службы печати Java состоит из четырех пакетов:

Это число представляет четыре пакета, необходимые для того, чтобы напечатать

javax.print пакет обеспечивает основные классы и интерфейсы для API Службы печати Java™. Это включает приложениям клиента и сервера к:

Спецификация Типа документа

DocFlavor class представляет формат данных печати, таких как JPEG или PostScript. DocFlavor формат состоит из двух частей: тип MIME и представление имя class. Тип MIME описывает формат, и представление документа, на которое указывает имя class, как документ поставляется принтеру или потоку вывода. Приложение использует DocFlavor и набор атрибута, чтобы найти принтеры с возможностями, определенными набором атрибута. Этот пример кода демонстрирует, как получать массив StreamPrintServiceFactory объекты, которые могут возвратиться StreamPrintService возражает способный преобразовать изображение ДЖИФА в PostScript:

DocFlavor flavor  = DocFlavor.INPUT_STREAM.GIF;
String psMimeType = DocFlavor.BYTE_ARRAY.
                    POSTSCRIPT.getMimeType();
StreamPrintServiceFactory[] psfactories =
              StreamPrintServiceFactory.
              lookupStreamPrintServiceFactories(
              flavor, psMimeType);

Определения атрибута

javax.print.attribute и javax.print.attribute.standard пакеты определяют атрибуты печати, которые описывают возможности службы печати, определяют требования задания печати, и отслеживают продвижение задания печати.

Например, если требуется использовать формат листа А4, и напечатать три копии Вашего документа необходимо создать ряд следующих атрибутов, реализовывая PrintRequestAttributeSet интерфейс:

PrintRequestAttributeSet attr_set =
    new HashPrintRequestAttributeSet();
attr_set.add(MediaSize.ISO_A4); 
attr_set.add(new Copies(3)); 

Затем следует передать набор атрибута к заданию печати print метод, наряду с DocFlavor.

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

Приложение вызывает статические методы абстрактного class PrintServiceLookup определять местоположение служб печати, у которых есть возможности удовлетворить запрос печати приложения. Например, чтобы напечатать две копии двустороннего документа, приложение сначала должно найти принтеры, у которых есть двусторонняя возможность печати:

DocFlavor doc_flavor = DocFlavor.INPUT_STREAM.PDF;
PrintRequestAttributeSet attr_set =
    new HashPrintRequestAttributeSet();
attr_set.add(new Copies(2));
attr_set.add(Sides.DUPLEX);
PrintService[] service = PrintServiceLookup.
              lookupPrintServices(doc_flavor,
              attr_set);

Обычное использование API

В заключение API Службы печати Java выполняет следующие шаги, чтобы обработать запрос печати:

  1. Выбирает a DocFlavor.
  2. Создает ряд атрибутов.
  3. Определяет местоположение службы печати, которая может обработать запрос печати как определено DocFlavor и атрибут устанавливается.
  4. Создает a Doc объект, инкапсулирующий DocFlavor и фактические данные печати.
  5. Получает задание печати, представленное DocPrintJob, от службы печати.
  6. Вызовы print метод задания печати.

Для получения дополнительной информации о Службе печати Java, см. Java 2D™ Руководство пользователя API Службы печати.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Печать Многократного Документа Страницы
Следующая страница: Печать Содержания Пользовательского интерфейса