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 包时文档标记是否针对大小进行优化。

价值 意义
TRUE
包编写器将尝试优化最小大小的标记。
FALSE
包编写器不会尝试执行任何优化。

[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
文件名documentSequencePartName,或 packageWriterNULL
XPS_E_NO_CUSTOM_OBJECTS
corePropertiesdocumentSequencePrintTicketpackageThumbnail 不指向已识别的接口实现。 不支持 XPS 文档 API 接口的自定义实现。
 

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

言论

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

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

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

要求

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

另请参阅

CreateFile

IXpsOMCoreProperties

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMPackageWriter

IXpsOMPrintTicketResource

打包错误

SECURITY_ATTRIBUTES

XML 纸张规范

XPS 文档错误