共用方式為


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
filenamedocumentSequencePartNamepackageWriterNULL
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、Windows Vista SP2 和平臺更新 [傳統型應用程式 |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 檔案錯誤