使用 IXpsOMPackageWriter 接口

IXpsOMPackageWriter 接口创建一个 XPS 文档文件,应用程序可以将 XPS OM 的 IXpsOMPage 接口的内容写入其中。 当按顺序处理或创建文档内容时,IXpsOMPackageWriter 接口最有用。 与 IXpsOMPackage 接口的 WriteToFileWriteToStream 方法不同,若要使用 IXpsOMPackageWriter 接口,既不需要完成整个FixedDocument,也不需要完成FixedDocumentSequence。

概述

IXpsOMPackageWriter 接口一次写入一页(从 XPS 文档的第一页到最后一页)。 该接口可用于创建简单的 XPS 文档文件以及在 FixedDocumentSequence 中包含多个 FixedDocument 的复杂 XPS 文档文件。 在复杂的 XPS 文档文件中,FixedDocument 也是按顺序创建的,从 FixedDocumentSequence 中的第一个 FixedDocument 开始。 IXpsOMPackageWriter 接口不支持以随机顺序创建文档内容。 例如,使用它来创建顺序报告或在设备驱动程序筛选器中执行处理,其中的文档内容按顺序馈送到驱动程序。

术语回顾

XPS 文档文件是符合 XML 纸张规范的开放式打包约定 (OPC) 包。 因此,从技术上讲,IXpsOMPackageWriter 接口会创建一个 OPC 包,但它是一个符合 XML 纸张规范的 OPC 包。 因此,在有关 XPS 文档的讨论中,术语“XPS 文档”和“包”经常互换使用。

IXpsOMPackageWriter 接口创建的包会包含所需的 XPS 文档组件:一个 FixedDocumentSequence、至少一个 FixedDocument 和至少一个 FixedPage。 实例化 IXpsOMPackageWriter 接口时,会创建 FixedDocumentSequence。 每次调用 IXpsOMPackageWriter::StartNewDocument 时都会创建一个 FixedDocument,每次调用 IXpsOMPackageWriter::AddPage 时都会创建一个 FixPage。 由于接口按顺序写入文档内容,因此 AddPage 方法会将页面添加到最近创建的 FixedDocument 中。

使用 IXpsOMPackageWriter 接口

以下过程介绍了如何使用 IXpsOMPackageWriter 接口创建 XPS 文档文件。 该过程没有描述如何实例化 IXpsOMPage 接口及其内容。 若要详细了解 IXpsOMPage 以及如何向页面添加内容,请参阅 XPS OM 页面接口以及“另请参阅”部分列出的主题。

创建文档

  1. 实例化 IXpsOMPackageWriter 接口。

    这会在包中创建一个空的 FixedDocumentSequence。

  2. 通过调用 IXpsOMPackageWriter::StartNewDocument 在包中启动一个新文档。

    添加页面之前,请调用 IXpsOMPackageWriter::StartNewDocument,将 FixedDocument 添加到已在步骤 1 中创建的 FixedDocumentSequence 中。

  3. 添加内容。

  4. 通过调用 IXpsOMPackageWriter::Close 关闭包及其内容。

高级功能

IXpsOMPackageWriter 接口的方法还支持添加资源、缩略图和打印票证。 这些文档组件可以在包、FixedDocumentSequence、FixedDocument 和FixedPage 级别添加。 若要详细了解如何使用此接口进行打印,请参阅打印 XPS OM

使用 XPS 数字签名 API

XPS OM 页面接口

导航 XPS OM

使用 XPS OM 画布和可视界面

使用 XPS OM 路径接口

使用 XPS OM 文本、图形和图像接口

XPS OM 打印票证接口

IXpsOMThumbnailGenerator

XPS 文档 API 参考

XML 纸张规范