PrintCapabilities 架构和文档构造

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

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

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

本部分的目标受众包括以下组:

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

  • PrintCapabilities 使用者

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

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

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

PrintCapabilities 和 PrintTicket 架构都是打印架构的专用部分。 打印架构的这些子集之间的main结构差异在于,PrintCapabilities 架构包括 PrintTicket 架构中不包含的 Property 和 ParameterDef 实例,而 PrintTicket 架构包含属性实例和 ParameterInit 实例不包含在 PrintCapabilities 架构中。 除了这些差异外,PrintCapabilities 和 PrintTicket 架构通常在内容、共享功能、Option、ScoredProperty 和 Value 实例中相互镜像。 任何此类共享内容都必须保持最新。 例如,如果在 PrintCapabilities 架构的 PageMediaSize 功能中进行了更改,则必须在 PrintTicket 架构中进行相同的更改。

打印架构规范