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:一个布尔值,确定返回的句柄是否可以由子进程继承
有关 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 文档错误。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
filename、 documentSequencePartName 或 packageWriter 为 NULL。 |
|
coreProperties、 documentSequencePrintTicket 或 packageThumbnail 不指向已识别的接口实现。 不支持 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 |