IXpsOMObjectFactory::CreatePackageWriterOnFile 方法 (xpsobjectmodel.h)

打开一个文件,用于将 XPS OM 的内容写入 XPS 包。

语法

HRESULT CreatePackageWriterOnFile(
  [in]          LPCWSTR                   fileName,
  [in]          LPSECURITY_ATTRIBUTES     securityAttributes,
  [in]          DWORD                     flagsAndAttributes,
  [in]          BOOL                      optimizeMarkupSize,
  [in]          XPS_INTERLEAVING          interleaving,
  [in]          IOpcPartUri               *documentSequencePartName,
  [in]          IXpsOMCoreProperties      *coreProperties,
  [in]          IXpsOMImageResource       *packageThumbnail,
  [in]          IXpsOMPrintTicketResource *documentSequencePrintTicket,
  [in]          IOpcPartUri               *discardControlPartName,
  [out, retval] IXpsOMPackageWriter       **packageWriter
);

参数

[in] fileName

要创建的文件的名称。

[in] securityAttributes

SECURITY_ATTRIBUTES 结构,其中包含两个独立但相关的成员:

  • lpSecurityDescriptor:可选的安全描述符
  • bInheritHandle:一个布尔值,确定返回的句柄是否可以由子进程继承
如果 lpSecurityDescriptorNULL,则会为与返回的句柄关联的文件或设备分配默认安全描述符。

有关 securityAttributes 的详细信息,请参阅 CreateFile

[in] flagsAndAttributes

指定要创建的文件的设置和属性。 对于大多数文件,可以使用 FILE_ATTRIBUTE_NORMAL 值。

有关此参数的详细信息 ,请参阅 CreateFile

[in] optimizeMarkupSize

一个布尔值,指示将 XPS OM 的内容写入 XPS 包时,是否对文档标记的大小进行优化。

含义
包编写器将尝试优化标记的最小大小。
包编写器不会尝试执行任何优化。

[in] interleaving

指定 XPS OM 的内容在写入文件时是否交错。

[in] documentSequencePartName

包含新文件中文档序列的部件名称的 IOpcPartUri 接口。

[in] coreProperties

IXpsOMCoreProperties 接口,其中包含要提供给新文件的核心文档属性。 此参数可以设置为 NULL

[in] packageThumbnail

包含要分配给新文件的缩略图的 IXpsOMImageResource 接口。 此参数可以设置为 NULL

[in] documentSequencePrintTicket

IXpsOMPrintTicketResource 接口,其中包含要分配给新文件的包级打印票证。 此参数可以设置为 NULL

[in] discardControlPartName

包含放弃控件部件的名称的 IOpcPartUri 接口。 此参数可以设置为 NULL

[out, retval] packageWriter

指向此方法创建的新 IXpsOMPackageWriter 接口的指针。

返回值

该方法返回 HRESULT。 可能的值包括但不限于下表中的值。 有关此表中未列出的 XPS 文档 API 返回值的信息,请参阅 XPS 文档错误

返回代码 说明
S_OK
方法成功。
E_POINTER
filenamedocumentSequencePartNamepackageWriterNULL
XPS_E_NO_CUSTOM_OBJECTS
corePropertiesdocumentSequencePrintTicketpackageThumbnail 不指向已识别的接口实现。 不支持 XPS 文档 API 接口的自定义实现。
 

此方法调用 打包 API。 有关打包 API 返回值的信息,请参阅 打包错误

注解

打开并初始化文件,然后使用返回的 IXpsOMPackageWriter 接口写入内容类型、包关系、核心属性、文档序列资源和文档序列关系。

如果 documentSequencePrintTicket 设置为 NULL 并且 交错XPS_INTERLEAVING_ON,则此方法将创建一个空白作业级打印票证,并将关系添加到空白打印票证。 这样做是为了提供包的更高效的流式处理消耗。

如果 documentSequencePrintTicket 设置为 NULL 并且 交错XPS_INTERLEAVING_OFF,则不会创建空白打印票证。

要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 xpsobjectmodel.h

另请参阅

CreateFile

IXpsOMCoreProperties

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMPackageWriter

IXpsOMPrintTicketResource

打包错误

SECURITY_ATTRIBUTES

XML 纸张规范

XPS 文档错误