PrintCapabilities 架构和文档构造

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

当前 Win32 DevCaps 函数(如 GetDeviceCaps 或 DeviceCapabilities)在Microsoft平台软件开发工具包(SDK)文档中介绍)严重限制了非驱动程序组件在打印设备的功能和属性方面可以获取的信息类型。 不支持发布打印处理器的功能,也没有枚举非标准特征的方法。 因此,除了驱动程序之外,组件无法构造完整的用户界面。 此外,客户端或应用程序无法完全确定设备的功能或打印队列超出 Win32 DevCaps 函数提供的功能。 当前函数不可扩展,因此设备无法发布新的属性或功能。

PrintCapabilities 架构旨在通过提供这些功能提供的超集来消除 Win32 DevCaps 函数的许多限制。 如果需要更多功能,PrintCapabilities 文档的提供程序可以通过添加专用定义的元素实例,在打印架构框架的约束内扩展打印架构关键字。 由于它依赖 XML 作为交换媒介,PrintCapabilities 文档的任何使用者都可以访问文档中的所有数据,而无需考虑与不同的作系统版本兼容。 本部分介绍 PrintCapabilities 架构及其用法的详细信息。

本部分的预期受众包括以下组:

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

  • PrintCapabilities 的使用者

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

前面的列表中的第一个类别称为本部分的其余部分的 PrintCapabilities 提供程序。 第二和第三个类别称为 PrintCapabilities 使用者。

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

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

打印架构规范