Spec-Zone .ru
спецификации, руководства, описания, API
|
См.: Описание
Интерфейс | Описание |
---|---|
Атрибут |
Интерфейсный Атрибут является основным интерфейсом, реализованным любым и каждым классом атрибута печати, чтобы указать, что класс представляет атрибут печати.
|
AttributeSet |
Интерфейсный AttributeSet определяет интерфейс для ряда атрибутов печати.
|
DocAttribute |
Интерфейсный DocAttribute является интерфейсом тегирования, который класс атрибута печати реализует, чтобы указать, что атрибут обозначает установку для документа.
|
DocAttributeSet |
Интерфейсный DocAttributeSet определяет интерфейс для ряда атрибутов документа, то есть.
|
PrintJobAttribute |
PrintJobAttribute является интерфейсом тегирования, который класс атрибута печати реализует, чтобы указать, что атрибут описывает состояние Задания Печати или некоторую другую характеристику Задания Печати.
|
PrintJobAttributeSet |
Интерфейсный PrintJobAttributeSet определяет интерфейс для ряда атрибутов задания печати, то есть.
|
PrintRequestAttribute |
Интерфейсный PrintRequestAttribute является интерфейсом тегирования, который класс атрибута печати реализует, чтобы указать, что атрибут обозначает требуемую установку для задания печати.
|
PrintRequestAttributeSet |
Интерфейсный PrintRequestAttributeSet определяет интерфейс для ряда атрибутов запроса печати, то есть.
|
PrintServiceAttribute |
Интерфейсный PrintServiceAttribute является интерфейсом тегирования, который класс атрибута печати реализует, чтобы указать, что атрибут описывает состояние Службы печати или некоторую другую характеристику Службы печати.
|
PrintServiceAttributeSet |
Интерфейсный PrintServiceAttributeSet определяет интерфейс для ряда атрибутов задания печати, то есть.
|
SupportedValuesAttribute |
Интерфейсный SupportedValuesAttribute является интерфейсом тегирования, который класс атрибута печати реализует, чтобы указать, что атрибут описывает поддерживаемые значения для другого атрибута.
|
Класс | Описание |
---|---|
AttributeSetUtilities |
Класс AttributeSetUtilities обеспечивает статические методы для того, чтобы они управляли AttributeSets.
|
DateTimeSyntax |
DateTimeSyntax класса является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов, значение которых является датой и время.
|
EnumSyntax |
Класс EnumSyntax является абстрактным базовым классом, обеспечивающим общую реализацию всего "безопасного с точки зрения типов перечисления" объекты.
|
HashAttributeSet |
Класс HashAttributeSet обеспечивает
AttributeSet реализация с характеристиками карты хеша. |
HashDocAttributeSet |
HashDocAttributeSet класса обеспечивает набор атрибута, который наследовал его реализацию от класса
HashAttributeSet и осуществляет семантические ограничения интерфейса DocAttributeSet . |
HashPrintJobAttributeSet |
HashPrintJobAttributeSet класса обеспечивает набор атрибута, который наследовал его реализацию от класса
HashAttributeSet и осуществляет семантические ограничения интерфейса PrintJobAttributeSet . |
HashPrintRequestAttributeSet |
Класс HashPrintRequestAttributeSet наследовал свою реализацию от класса
HashAttributeSet и осуществляет семантические ограничения интерфейса PrintRequestAttributeSet . |
HashPrintServiceAttributeSet |
HashPrintServiceAttributeSet класса обеспечивает набор атрибута, который наследовал его реализацию от класса
HashAttributeSet и осуществляет семантические ограничения интерфейса PrintServiceAttributeSet . |
IntegerSyntax |
Класс IntegerSyntax является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов с целочисленными значениями.
|
ResolutionSyntax |
Класс ResolutionSyntax является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов, обозначающих разрешение принтера.
|
SetOfIntegerSyntax |
SetOfIntegerSyntax класса является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов, значение которых является рядом неотрицательных целых чисел.
|
Size2DSyntax |
Класс Size2DSyntax является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов, обозначающих размер в двух размерностях.
|
TextSyntax |
TextSyntax класса является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов, значение которых является строкой.
|
URISyntax |
URISyntax класса является абстрактным базовым классом, обеспечивающим общую реализацию всех атрибутов, значение которых является Универсальным Идентификатором ресурса (URI).
|
Исключение | Описание |
---|---|
UnmodifiableSetException |
Брошенный, чтобы указать, что требуемая работа не может быть выполнена, потому что набор неподдающийся изменению.
|
Данные печати и инструкции обработки являются отдельными объектами. Это означает что:
Инструкция обработки не определяет, как задание печати обрабатывает запрос; каждая инструкция обработки является только описанием результатов задания печати. Задание печати определяет способ, которым оно достигает результатов, определенных инструкциями обработки. Представление обработки инструкций как дескриптивные элементы обеспечивает больше гибкости для того, чтобы оно реализовало задания печати.
В API Службы печати Java категория атрибута представляется классом Java, реализовывая интерфейс Атрибута. Значения атрибута являются экземплярами такого класса или одним из его подклассов. Например, чтобы определить число копий, приложение создает экземпляр класса Копий с числом требуемых копий и использует Copies
экземпляр как часть запроса печати. В этом случае, Copies
класс представляет категорию атрибута, и Copies
экземпляр представляет значение атрибута.
Как только принтер начинает обрабатывать задание печати, дополнительная информация о задании становится доступной, который мог бы включать: состояние задания (такой как завершено или поставлено в очередь) и число страниц, напечатанных до сих пор. Эти сведения являются также атрибутами. Атрибуты могут также описать принтер непосредственно, такой как: имя принтера, расположение принтера, и число заданий поставлены в очередь.
API Службы печати Java определяет эти различные виды атрибутов с пятью подынтерфейсами Attribute
:
DocAttribute
или ко всему заданию печати как a PrintRequestAttribute
. Определенные низкоуровневые атрибуты никогда не используются самостоятельно, но всегда агрегированы в высокоуровневые атрибуты. Эти низкоуровневые классы атрибута только реализуют интерфейсный Атрибут, не любой из подынтерфейсов тегирования. API Службы печати Java определяет группу стандартных классов атрибута, смоделированных на атрибуты в интернет-Протоколе Печати (IPP) версия 1.1. Стандартные классы атрибута находятся в подпакете javax.print.attribute.standard, чтобы сохранить фактические классы атрибута, концептуально отделяются от универсального аппарата, определенного в пакете javax.print.attribute.
AttributeSet
интерфейс подобен интерфейсу Карты: это обеспечивает карту ключа к значениям, в которых каждый ключ уникален и может содержать не больше, чем одно значение. Однако, AttributeSet
интерфейс разрабатывается, чтобы определенно поддерживать потребности API Службы печати Java. AttributeSet
требует что:
AttributeSet
соответствует категории, и значение ключа может только быть одним из значений атрибута, которые принадлежат категории, представленной ключом. Таким образом, в отличие от a Map
, AttributeSet
ограничивает возможные значения ключа: категория атрибута не может быть установлена в значение атрибута, которое не принадлежит той категории. Attribute
интерфейс может быть добавлен к набору. javax.print.attribute пакет включает HashAttributeSet как конкретную реализацию интерфейса набора атрибута. HashAttributeSet
обеспечивает набор атрибута, основанный на карте хеша. Можно использовать эту реализацию или обеспечить Вашу собственную реализацию интерфейса AttributeSet
.
API Службы печати Java обеспечивает четыре специализации набора атрибута, которые ограничиваются, чтобы содержать только один из четырех видов атрибутов, как обсуждено в Роли атрибутаразделе :
Заметьте, что только четыре вида наборов атрибута перечисляются здесь, но есть пять видов атрибутов. Интерфейсный SupportedValuesAttribute обозначает атрибут, который дает поддерживаемые значения для другого атрибута. Атрибуты поддерживаемых значений никогда не агрегированы в наборы атрибута, таким образом нет никакого подынтерфейса набора атрибута, определенного для них. В некоторых контекстах набор атрибута только для чтения, что означает, что клиенту только разрешают исследовать атрибут содержание набора, но не изменить их. В других контекстах набор атрибута является чтением-записью, что означает, что клиенту разрешают и исследовать и изменить атрибут содержание набора. Для набора атрибута "только для чтения", вызывая видоизменяющуюся работу броски UnmodifiableSetException
.
Пакет javax.print.attribute включает одну конкретную реализацию каждого из подынтерфейсов набора атрибута:
Copies
, Стороны класса, и класс PrinterResolution. Каждый класс атрибута обертывает один или более примитивных элементов данных, содержащих значение атрибута. Операции присвоения атрибута выполняют частые сравнения между объектами категории атрибута, добавляя атрибуты, находя существующие атрибуты в той же самой категории, и ища атрибут, данный его категорию. Поскольку категория атрибута представляется классом, быстрые сравнения значения атрибута могут быть выполнены с Class.equals
метод. Даже при том, что API Службы печати Java включает большое количество различных категорий атрибута, есть только несколько различных типов значений атрибута. Большинство атрибутов может быть представлено небольшим количеством типов данных, таких как: целочисленные значения, целочисленные диапазоны, текст, или перечисление целочисленных значений. Тип значения атрибута, которое принимает категория, вызывают абстрактным синтаксисом атрибута. Чтобы обеспечить непротиворечивость и уменьшить дублирование кода, API Службы печати Java определяет классы абстрактного синтаксиса, чтобы представить каждый абстрактный синтаксис, и эти классы используются в качестве родителя стандартных атрибутов когда бы ни было возможно. Классы абстрактного синтаксиса:
Каждый класс атрибута реализует Attribute
интерфейс, любой прямо или косвенно, чтобы отметить это как атрибут печати. Класс атрибута, который может появиться в ограниченных наборах атрибута в определенных контекстах также, реализует один или более подынтерфейсов Attribute
. Большинство классов атрибута также расширяет соответствующий класс абстрактного синтаксиса, чтобы получить реализацию. Рассмотрите Sides
класс атрибута:
public class Sides extends EnumSyntax implements DocAttribute, PrintRequestAttribute, PrintJobAttribute { public final Object getCategory() { return Sides.class; } ... }
Начиная с каждого класса атрибута реализации Attribute
, каждый класс атрибута должен обеспечить реализацию для getCategory
метод, который возвращает категорию атрибута. В случае Sides
, getCategory
возвраты метода Sides.class
. getCategory
метод является заключительным, чтобы гарантировать, что любые определенные поставщиком подклассы стандартного класса атрибута появляются в той же самой категории. Каждый объект атрибута является неизменным когда-то созданный так, чтобы ссылки на объект атрибута могли быть розданы свободно. Чтобы получить различное значение атрибута, создайте различный объект атрибута.
EnumSyntax
определяет все возможные значения атрибута во время компиляции как одноэлементные экземпляры класса атрибута. Это означает, что новые перечисляемые значения не могут быть созданы во время выполнения. Чтобы определить новые специфичные для поставщика значения для стандарта перечисленный атрибут, поставщик должен определить новый класс атрибута, определяющий новые одноэлементные экземпляры. Гарантировать, что новое падение значений атрибута той же самой категории как стандартные значения атрибута, новый класс атрибута должен быть подклассом стандартного класса атрибута. Чтобы определить новую категорию атрибута, поставщик определяет новый класс атрибута. Этот класс атрибута, как стандартные классы атрибута, реализации Attribute
или один из его подынтерфейсов и расширяет класс абстрактного синтаксиса. Поставщик может или использовать существующий класс абстрактного синтаксиса или определить новый. Новый определенный поставщиком атрибут может использоваться везде, где Attribute
используется, такой как в AttributeSet
.
PrintRequestAttributeSet
потому что атрибуты запроса печати являются типами атрибутов, которые обычно определяет клиент. Этот пример демонстрирует, как создавать набор атрибута атрибутов запроса печати и определять местоположение принтера, который может напечатать документ согласно указанным атрибутам:
FileInputStream psStream; try { psstream = new FileInputStream("file.ps"); } catch (FileNotFoundException ffne) { } if (psstream == null) { return; } //Set the document type. See the DocFlavor documentation for //more information. DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT; Doc myDoc = new SimpleDoc(pstream, psInFormat, null); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new Copies(5)); aset.add(MediaSize.A4); aset.add(Sides.DUPLEX); PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset); if (services.length > 0) { DocPrintJob job = services[0].createPrintJob(); try { job.print(myDoc, aset); } catch (PrintException pe) {} }
Пожалуйста, отметьте: В javax.print API нулевой ссылочный параметр к методам является неправильным если явно не задокументировано на методе как наличие значимой интерпретации. Использование наоборот является неправильным кодированием и может привести к исключению времени выполнения или сразу или в некоторое более позднее время. IllegalArgumentException и NullPointerException являются примерами типичных и приемлемых исключений времени выполнения для таких случаев.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.