PrintTicket 架构和文档构造

本主题不是最新的。 有关最新信息,请参阅 打印架构规范

使用 DEVMODE 结构指定设备配置信息的当前方法存在一些限制。 首先,DEVMODE 结构是一个二进制结构,这可能会导致不同版本的问题。 其次,它分为一个不可扩展的公共部分和一个专用部分,该部分只能由驱动程序访问,然后只能由创建它的特定驱动程序进行访问。 PrintTicket 格式使用基于 XML 的打印架构框架表达配置信息,从而消除了 DEVMODE 结构的这些缺点。

PrintTicket 架构解决了刚才提到的两个问题中的每一个问题。 首先,PrintTicket 架构是基于 XML 的文本文件,因此消除了扩展性和版本控制问题。 其次,配置信息适用于所有客户端,这意味着任何客户端或提供程序都可以存储和检索 PrintTicket 中包含的任何信息。 使用打印架构框架和派生的 PrintCapabilities 文档所使用的相同技术来描述选项。 因此,PrintTicket 提供了要实现的选项定义模型的所有潜在可移植性优势。 有关详细信息,请参阅 打印架构框架。 本部分的预期受众包括以下组:

  • PrintTicket/PrintCapabilities 提供程序接口的实现者

  • PrintTicket 的使用者

  • PrintTicket/PrintCapabilities 提供程序接口的客户端

上一个列表中的第一个类别的成员在本部分的其余部分称为 PrintTicket 提供程序。 最后两个类别的成员称为 PrintTicket 使用者。

与打印架构和 PrintCapabilities 架构的关系

PrintTicket 和 PrintCapabilities 架构都是打印架构的专用部分。 打印架构的这些子集之间的主要结构差异是 PrintTicket 架构包含不包含在 PrintCapabilities 架构中的属性和 ParameterInit 实例,而 PrintCapabilities 架构包含属性和 ParameterDef 实例,这些实例不包含在 PrintTicket 架构中。 除了这些差异之外,PrintCapabilities 和 PrintTicket 架构通常相互镜像内容、共享功能、选项、ScoredProperty 和 Value 实例。 任何此类共享内容都必须保留 up-to-date。 例如,如果在 PrintCapabilities 架构的 MediaSize 功能中进行了更改,则必须在 PrintTicket 架构中进行相同的更改。

打印架构规范