Определения параметров

Этот раздел не является актуальным. Самые актуальные сведения см. в разделе Спецификация схемы печати.

При определении параметра важно сделать это таким образом, чтобы его можно было осмысленно сравнить с другими экземплярами Option, содержащимися в том же компоненте. Сравнение должно быть значимым, так как экземпляр Option используется для определения конфигурации не только устройства, но и задания, независимо от устройства или PrintCapabilities, которые использовались для создания конфигурации. Другие экземпляры Option в компоненте могут отображаться либо в том же документе PrintCapabilities, либо в другом документе PrintCapabilities, который представляет другое устройство. Документ PrintCapabilities, определенный другой стороной, работающей независимо друг от друга. После того как клиент выберет конфигурацию устройства для отрисовки задания или документа, эта конфигурация обычно сохраняется вместе с заданием или документом в виде PrintTicket. PrintTicket содержит набор экземпляров Option, обычно по одному для каждого компонента, определенного в документе PrintCapabilities. Экземпляры Option должны быть переносимыми и должны сохранять намерение печати, чтобы намерение можно было передать, когда этот printTicket передается другому устройству, даже тому, у которого есть другой документ PrintCapabilities, написанный другим автором. Основное преимущество этой переносимости заключается в том, что если другое устройство не поддерживает параметр, содержащийся в PrintTicket, драйвер устройства или подсистема может определить и выбрать параметр, который является наиболее близким в функциональности.

Одной из main функций PrintTicket драйвера является определение параметра устройства в документе PrintCapabilities, который наиболее точно соответствует конкретному параметру, указанному в PrintTicket. Во время этого сопоставления или оценки, определенного драйвером устройства, параметр в PrintTicket называется ссылочным параметром, а параметр в документе PrintCapabilities — вариантом-кандидатом . Общая метрика сопоставления — это количество совпадающих экземпляров ScoredProperty в экземплярах-кандидатах и ссылочных экземплярах Option; Большее количество совпадений обычно указывает на лучшее сохранение намерения печати. В процессе оценки вы можете присвоить больший вес некоторым элементам ScoredProperty, чем другим.

Экземпляры Option можно сделать переносимыми, гарантируя, что все экземпляры Option, принадлежащие одному компоненту, имеют один или несколько общих элементов ScoredProperty. Это означает, что существует набор элементов ScoredProperty, которые отображаются в каждом экземпляре Option (принадлежащих одному и тому же компоненту). Например, экземпляры Option для компонента PageMediaSize могут быть переносимыми, если каждый экземпляр Option содержит элементы ScoredProperty, определяющие встроенные свойства PageMediaSize: MediaSizeWidth и MediaSizeHeight. Затем код драйвера устройства или подсистемы может определить, насколько тесно согласятся два экземпляра Option, сравнив различия в этих значениях ScoredProperty. Если в документе PrintCapabilities нет параметра, который точно соответствует параметру в PrintTicket, драйвер устройства может легко определить и выбрать параметр с ближайшими соответствующими измерениями мультимедиа.

Говорят, что два объекта (экземпляры Option в данном случае) имеют общие элементы или эквивалентно имеют соответствующие элементы, если выполняются следующие три условия.

  1. Два элемента имеют один и тот же тип элемента.

  2. Атрибуты имени двух элементов идентичны (или ни один из элементов не содержит атрибут name).

  3. Цепочка родительских элементов сравниваемых элементов до двух рассматриваемых объектов должна соответствовать условиям 1 и 2.

Например, рассмотрим ситуацию, в которой есть два экземпляра Option, каждый из которых содержит экземпляр ScoredProperty, а каждый из этих экземпляров ScoredProperty содержит экземпляр Property. Очевидно, что выполняется первое условие (два экземпляра Property имеют одинаковый тип), а часть третьего условия выполняется (родители экземпляров Property имеют один и тот же тип ScoredProperty, а родители этих элементов являются экземплярами Option, которые также относятся к одному типу). Если атрибуты имен экземпляров Property, ScoredProperty и Option либо идентичны, либо не предоставлены, два экземпляра Option имеют общие элементы.

Первым шагом при создании экземпляров Option является определение набора элементов ScoredProperty, которые присутствуют в большинстве или во всех экземплярах Option. Если атрибут конфигурации устройства может быть представлен стандартным компонентом (перечисленным в разделе Ключевые слова схемы печати), обратите внимание на общие элементы ScoredProperty в стандартных экземплярах Option. Убедитесь, что все новые экземпляры Option, которые вы вводите, также содержат эти элементы ScoredProperty. Вы всегда можете добавлять дополнительные элементы ScoredProperty по мере необходимости, чтобы отличать экземпляры Option от стандартных экземпляров Option. Вы даже можете удалить один или несколько общих элементов ScoredProperty, если есть веские причины, хотя это снижает переносимость такого параметра. Конечно, при переносимости рекомендуется использовать неизмененные стандартные экземпляры Option, если между экземпляром Option и стандартным экземпляром Option нет внутренней разницы, которая должна быть отражена в новом экземпляре Option.

В следующем примере показана ситуация, в которой может потребоваться добавить элемент ScoredProperty в экземпляр Option. Все стандартные экземпляры Option для компонента PageMediaSize имеют общие элементы MediaSizeWidth и MediaSizeHeight ScoredProperty. Предположим, что устройство может поддерживать один из стандартных размеров носителей letter, подав бумагу либо поперечно (LongEdgeFirst), либо продольно (ShortEdgeFirst). Если вы не хотите вводить новую функцию направления канала для предоставления такой степени свободы, вместо этого можно изменить два экземпляра Параметра PageMediaSize для Letter, чтобы включить ориентацию канала бумаги. Для этих двух экземпляров Letter Option начните со стандартного экземпляра Параметра PageMediaSize и добавьте новый элемент ScoredProperty, представляющий FeedDirection. В одном экземпляре Option задайте для feedDirection ScoredProperty значение LongEdgeFirst; в другом экземпляре Option задайте для параметра FeedDirection значение ShortEdgeFirst. Обратите внимание, что эти новые экземпляры Option сохраняют переносимость. Если параметр, представляющий Letter, ShortEdgeFirst, сохраняется в PrintTicket, а для отрисовки задания выбрано другое устройство, поддерживающее только стандартный параметр Letter, код сопоставления параметров может быстро определить, что стандартная option Letter лучше всего соответствует параметру ShortEdgeFirst. Причина, по которой это лучшее соответствие, заключается в том, что все экземпляры ScoredProperty согласны, за исключением FeedDirection ScoredProperty, который не существует в стандартном параметре Letter.

Вы также можете столкнуться с случаями, когда изменения в параметре фактически изменяют значение настолько, что измененный параметр больше не может считаться специализированным вариантом исходного варианта. В таких случаях следует изменить имя параметра, чтобы отразить разницу между измененным экземпляром Option и неизмененном экземпляром. Только автор документа PrintCapabilities для конкретного устройства может решить, достаточно ли отличается параметр от стандартного экземпляра Option, чтобы гарантировать несовместимое определение.

Теперь рассмотрим случай, когда устройство имеет атрибут конфигурации устройства, который не соответствует ни одному из стандартных экземпляров компонента. В этом случае нельзя полагаться на стандартные экземпляры Option для предоставления списка общих элементов ScoredProperty. При создании экземпляра ScoredProperty main цель состоит в том, чтобы отличать каждый параметр от других в компоненте и описать, почему пользователь выбирает один параметр вместо другого. Базовый план заключается в том, чтобы охарактеризовать каждый Параметр уникальным атрибутом имени, а ScoredProperty, содержащий атрибут name, становится тем, который используется для определения общих элементов.

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

Следует отметить, что для схемы печати требуется, чтобы набор экземпляров ScoredProperty, их расположения и значения, назначенные каждому объекту ScoredProperty в option, должны оставаться постоянными независимо от конфигурации. Вся концепция схемы печати зависит от экземпляров Option с фиксированными, идентифицируемыми экземплярами Property и ScoredProperty, которые совместно используются на многих устройствах.

Спецификация схемы печати