Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Paketschnittstellen stellen die oberste Ebene des XPS-OM dar, das einer XPS-Dokumentdatei entspricht. Diese Schnittstellen enthalten Methoden, die ein XPS-OM in ein XPS-Dokument oder -Stream serialisieren und ein XPS-Paket deserialisieren, um ein XPS-OM zu erstellen, mit dem ein Programm auf den Inhalt eines Dokuments zugreifen kann.
| Schnittstellenname | Logische untergeordnete Schnittstellen | Beschreibung |
|---|---|---|
|
IXpsOMPackage- |
IXpsOMDocumentSequence IXpsOMCoreProperties |
Das vollständige XPS-OM, das dem Paket entspricht, das das XPS-Dokument enthält. |
|
IXpsOMPackageWriter |
Nichts |
Ermöglicht die inkrementelle Serialisierung von Dokumentseiten in ein Paket. |
|
IXpsOMCoreProperties |
Nichts |
Greift auf die Dokumentmetadaten zu. |
Codebeispiele
Die folgenden Codebeispiele veranschaulichen, wie einige der Paketschnittstellen von einem Programm verwendet werden. Sofern nicht anders angegeben, sind alle kursiv formatierten Elemente Parameternamen.
- Lesen eines XPS-Dokuments in einem XPS OM-
- Schreiben eines XPS-OM in eine XPS-Dokumentdatei
- Zugreifen auf die Dokumentsequenz des XPS OM-
- Zugreifen auf die CoreProperties- des Dokuments
Lesen eines XPS-Dokuments in ein XPS-OM
Aus einem vorhandenen XPS-Dokument, dessen Dateiname in xpsDocumentFilenamegespeichert ist, erstellt dieses Codebeispiel ein XPS-OM, auf das von xpsPackageverwiesen wird.
HRESULT hr = S_OK;
IXpsOMPackage *xpsPackage;
hr = xpsFactory->CreatePackageFromFile(
xpsDocumentFilename,
FALSE,
&xpsPackage);
// xpsPackage now contains a pointer to the IXpsOMPackage
// object that has been populated with the contents
// of the XPS document in xpsDocumentFilename.
Schreiben eines XPS-OM in eine XPS-Dokumentdatei
Im folgenden Codebeispiel wird das XPS-OM geschrieben, auf das von xpsPackageverwiesen wird. Im Beispiel wird ein XPS-Dokument in der Datei erstellt, dessen Name in FileNamegespeichert ist.
HRESULT hr = S_OK;
hr = xpsPackage->WriteToFile(
xpsDocumentFilename,
NULL, // LPSECURITY_ATTRIBUTES
FILE_ATTRIBUTE_NORMAL,
FALSE); // optimizeMarkupSize
Zugreifen auf die Dokumentsequenz des XPS-OM
Im folgenden Codebeispiel wird ein Zeiger auf die IXpsOMDocumentSequence Schnittstelle abgerufen, die die Dokumentsequenz des XPS-OM enthält, das durch xpsPackagedargestellt wird.
HRESULT hr = S_OK;
IXpsOMDocumentSequence *docSeq;
IXpsOMDocumentCollection *docs;
// get the fixed document sequence of the package
hr = xpsPackage->GetDocumentSequence(&docSeq);
// get the collection of fixed documents in
// the fixed document sequence
hr = docSeq->GetDocuments(&docs);
Zugreifen auf die CoreProperties des Dokuments
Im folgenden Codebeispiel wird ein Zeiger auf die IXpsOMCoreProperties Schnittstelle abgerufen, sodass das Programm auf den Inhalt des CoreProperties-Teils zugreifen kann. Im Beispiel wird angenommen, dass das Dokument in ein XPS-OM gelesen wurde, das durch xpsPackagedargestellt wird.
HRESULT hr = S_OK;
IXpsOMCoreProperties *coreProps;
LPWSTR title;
// get the fixed document sequence of the package
hr = xpsPackage->GetCoreProperties(&coreProps);
// get the title property
hr = coreProps->GetTitle(&title);
// do something with the title property here...
// free the string when finished with it
CoTaskMemFree ( title );
coreProps->Release();