Partager via


Définitions d’options

Cette rubrique n’est pas actuelle. Pour obtenir les informations les plus actuelles, consultez La spécification du schéma d’impression.

La considération clé lorsque vous définissez une option est de le faire de telle sorte qu’elle puisse être comparée de manière significative à d’autres instances d’option contenues dans la même fonctionnalité. La comparaison doit être significative, car l’option instance est utilisée pour définir la configuration non seulement de l’appareil, mais aussi du travail, indépendamment de l’appareil ou des Capacités d’impression utilisées pour créer la configuration. Les autres instances d’option de la fonctionnalité peuvent apparaître soit dans le même document PrintCapabilities, soit dans un autre document PrintCapabilities qui représente un autre appareil, un document PrintCapabilities défini par une autre partie travaillant indépendamment. Une fois qu’un client a sélectionné la configuration de l’appareil à utiliser pour afficher un travail ou un document, cette configuration est généralement enregistrée, avec le travail ou le document, sous la forme d’un PrintTicket. PrintTicket contient un ensemble d’instances Option, généralement une pour chaque fonctionnalité définie dans le document PrintCapabilities. Les instances d’option doivent être portables et doivent conserver l’intention d’impression, afin que l’intention puisse être communiquée lorsque ce PrintTicket est donné à un autre appareil, même un autre document PrintCapabilities écrit par un autre auteur. Le principal avantage de cette portabilité est que si un autre appareil ne prend pas spécifiquement en charge une option contenue dans le PrintTicket, le pilote de périphérique ou le sous-système est en mesure d’identifier et de sélectionner l’option qui est la fonctionnalité la plus proche.

L’une des fonctions PrintTicket main du pilote consiste à identifier l’option de périphérique dans le document PrintCapabilities qui correspond le plus à une option particulière répertoriée dans printTicket. Au cours de ce processus de scoring défini par le pilote de périphérique ou de mise en correspondance, l’option dans printTicket est appelée option de référence , tandis que l’option dans le document PrintCapabilities est appelée option candidate . La métrique de correspondance générale correspond au nombre d’instances ScoredProperty correspondantes dans les instances d’option candidate et de référence ; un plus grand nombre de correspondances indique généralement une meilleure conservation de l’intention d’impression. Dans votre processus de scoring, vous pouvez choisir de donner plus de poids à certains éléments ScoredProperty qu’à d’autres.

Vous pouvez rendre les instances d’option portables en vous assurant que toutes les instances d’option qui appartiennent à la même fonctionnalité ont un ou plusieurs éléments ScoredProperty en commun. Cela signifie qu’il existe un ensemble d’éléments ScoredProperty qui s’affiche dans chaque option instance (appartenant à la même fonctionnalité). Par exemple, les instances d’option pour la fonctionnalité PageMediaSize peuvent être portables si chaque instance d’option contient des éléments ScoredProperty qui définissent les propriétés PageMediaSize intrinsèques : MediaSizeWidth et MediaSizeHeight. Le pilote de périphérique ou le code du sous-système peut ensuite déterminer à quel point deux instances d’option sont d’accord en comparant les différences entre ces valeurs ScoredProperty. S’il n’existe aucune option dans le document PrintCapabilities qui correspond exactement à celle du PrintTicket, le pilote de périphérique peut facilement déterminer et sélectionner l’option qui a les dimensions multimédias correspondantes les plus proches.

Deux objets (instances d’option dans ce cas) sont dits avoir des éléments en commun, ou équivalent, ont des éléments correspondants, si les trois conditions suivantes sont remplies.

  1. Les deux éléments sont du même type d’élément.

  2. Les attributs name des deux éléments sont identiques (ou aucun des éléments ne contient d’attribut name).

  3. La chaîne de parents des éléments comparés, jusqu’aux deux objets considérés, doit satisfaire aux conditions 1 et 2.

Par exemple, considérez une situation dans laquelle il existe deux instances d’option, où chacune contient une instance ScoredProperty et que chacune de ces instances ScoredProperty contient une instance Property. De toute évidence, la première condition est satisfaite (les deux instances Property sont du même type), et une partie de la troisième condition est satisfaite (les parents des instances Property sont du même type, ScoredProperty, et les parents de ces éléments sont les instances Option, qui sont également du même type). Si les attributs de nom de, respectivement, les instances Property, les instances ScoredProperty et les instances Option sont identiques ou ne sont pas fournis, les deux instances d’Option ont des éléments en commun.

À partir de ce qui précède, la première étape de la création d’instances Option consiste à définir un ensemble d’éléments ScoredProperty présents dans la plupart ou la totalité des instances d’Option. Si l’attribut de configuration de votre appareil peut être représenté par une fonctionnalité standard (répertoriée dans les mots clés de schéma d’impression), notez les éléments ScoredProperty en commun dans les instances Option standard. Vous devez vous assurer que toutes les nouvelles instances d’option que vous introduisez contiennent également ces éléments ScoredProperty. Vous êtes toujours libre d’ajouter des éléments ScoredProperty supplémentaires si nécessaire pour différencier vos instances Option des instances Option standard. Vous pouvez même supprimer un ou plusieurs des éléments ScoredProperty en commun s’il existe une bonne raison, bien que cela réduise la portabilité d’une telle option. Bien entendu, les considérations relatives à la portabilité suggèrent d’utiliser les instances d’option standard non modifiées, sauf s’il existe une différence intrinsèque entre votre option et l’option standard instance qui doit être reflétée dans la nouvelle instance d’option.

L’exemple suivant illustre une situation dans laquelle vous souhaiterez peut-être ajouter un élément ScoredProperty à un instance Option. Toutes les instances d’option standard pour la fonctionnalité PageMediaSize ont les éléments MediaSizeWidth et MediaSizeHeight ScoredProperty en commun. Supposons que votre appareil peut prendre en charge l’une des tailles de support Standard Letter en alimentant le papier de manière transversale (LongEdgeFirst) ou longitudinale (ShortEdgeFirst). En supposant que vous ne souhaitez pas introduire une nouvelle fonctionnalité de direction du flux pour exposer ce degré de liberté, vous pouvez à la place modifier les deux instances d’option PageMediaSize pour Letter afin d’incorporer l’orientation du flux papier. Pour ces deux instances d’option de lettre, commencez par l’option PageMediaSize standard instance et ajoutez un nouvel élément ScoredProperty pour représenter l’élément FeedDirection. Dans une instance d’option, définissez FeedDirection ScoredProperty sur LongEdgeFirst ; dans l’autre option instance, définissez FeedDirection sur ShortEdgeFirst. Notez que ces nouvelles instances Option conservent leur portabilité. Si l’option représentant Lettre, ShortEdgeFirst est enregistrée dans un PrintTicket et qu’un autre appareil prenant en charge uniquement l’option Lettre standard est sélectionné pour afficher le travail, le code de correspondance d’option peut rapidement déterminer que la lettre d’option standard correspond le mieux à la lettre d’option, ShortEdgeFirst. La raison pour laquelle il s’agit de la meilleure correspondance est que toutes les instances ScoredProperty sont d’accord, à l’exception de FeedDirection ScoredProperty, qui n’existe pas dans l’option Standard Letter.

Vous pouvez également rencontrer des cas où les modifications apportées à l’option modifient tellement la signification que l’option modifiée ne peut plus être considérée comme un cas spécialisé de l’original. Dans ce cas, vous devez modifier le nom de l’option pour refléter la différence entre l’option modifiée instance et l’option non modifiée. Seul l’auteur du document PrintCapabilities pour un appareil particulier peut décider si l’option proposée par l’appareil diffère suffisamment d’une option standard instance pour justifier une définition incompatible.

Considérez maintenant le cas où votre appareil a un attribut de configuration d’appareil qui ne correspond à aucune des instances de fonctionnalité standard. Dans ce cas, vous ne pouvez pas vous appuyer sur les instances d’option standard pour fournir la liste des éléments ScoredProperty en commun. Lorsque vous créez un instance ScoredProperty, votre objectif main est de différencier chaque option des autres dans la fonctionnalité et de décrire pourquoi un utilisateur sélectionnerait une option plutôt qu’une autre. La base de référence consiste à caractériser chaque option avec un attribut de nom unique, et le ScoredProperty qui contient l’attribut name devient celui utilisé pour déterminer les éléments en commun.

Une fois qu’un ensemble d’éléments ScoredProperty en commun a été établi, il est simple d’affecter des valeurs appropriées à chaque ScoredProperty pour créer chaque option. Comme dans l’exemple précédent, pour certaines instances d’option, vous devrez peut-être ajouter des instances ScoredProperty supplémentaires ou supprimer certains des éléments en commun pour créer une instance d’option appropriée.

Notez que le schéma d’impression exige que l’ensemble des instances ScoredProperty, leurs emplacements et les valeurs attribuées à chaque ScoredProperty dans une option restent constants, indépendamment de la configuration. Le concept entier du schéma d’impression s’appuie sur les instances Option ayant des instances de propriété fixes et identifiables et scoredProperty qui sont partagées sur de nombreux appareils.

Spécification du schéma d’impression