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.
In diesem Thema wird beschrieben, wie Sie ein leeres XPS-OM erstellen. Es stellt die Codebeispiele dar, die veranschaulichen, wie sie ein XPS-OM verwenden, um die Dokumentstruktur eines XPS-Dokuments zu erstellen, das eine leere Seite enthält.
Um als XPS-Dokument gespeichert zu werden, benötigt das XPS-OM mindestens die folgenden Komponenten:
- Ein IXpsOMPackage , das das XPS-Dokumentpaket beschreibt
- Eine IXpsOMDocumentSequence, die die Rahmenstruktur des Inhalts des Pakets enthält
- Ein IXpsOMDocument , das das Framework eines Dokuments innerhalb des Pakets enthält
- Eine IXpsOMPageReference, die die Seitenkollektion im Dokument enthält
- Eine IXpsOMPage , die eine leere Seite enthält
Wenn diese Schnittstellen verwendet werden, enthält das XPS-OM ein Dokument mit einer leeren Seite. Um dieses Dokument in einem XPS-OM zu erstellen, muss das Programm zuerst die einzelnen Komponenten erstellen und dann miteinander verknüpfen.
Lesen Sie vor der Verwendung der folgenden Codebeispiele den Haftungsausschluss in allgemeinen XPS-Dokumentprogrammierungsaufgaben.
Codebeispiele
Im folgenden Codebeispiel wird davon ausgegangen, dass die in "Initialisieren eines XPS-OM" beschriebene Initialisierung erfolgreich war.
// Declare the variables used in this section.
HRESULT hr = S_OK;
IOpcPartUri *opcPartUri = NULL;
IXpsOMPackage *xpsPackage = NULL;
IXpsOMDocumentSequence *xpsFDS = NULL;
IXpsOMDocumentCollection *fixedDocuments = NULL;
IXpsOMDocument *xpsFD = NULL;
IXpsOMPage *xpsPage = NULL;
IXpsOMPageReferenceCollection *pageRefs = NULL;
IXpsOMPageReference *xpsPageRef = NULL;
// These values are set outside of this code example.
XPS_SIZE pageSize = {width, height};
// Create the package.
hr = xpsFactory->CreatePackage( &xpsPackage );
// Create the URI for the fixed document sequence part and then
// create the fixed document sequence
hr = xpsFactory->CreatePartUri(
L"/FixedDocumentSequence.fdseq", &opcPartUri );
hr = xpsFactory->CreateDocumentSequence( opcPartUri, &xpsFDS );
// Release this URI to reuse the interface pointer.
if (NULL != opcPartUri) {opcPartUri->Release(); opcPartUri = NULL;}
// Create the URI for the document part and then create the document.
hr = xpsFactory->CreatePartUri(
L"/Documents/1/FixedDocument.fdoc", &opcPartUri );
hr = xpsFactory->CreateDocument( opcPartUri, &xpsFD );
// Release this URI to reuse the interface pointer.
if (NULL != opcPartUri) {opcPartUri->Release(); opcPartUri = NULL;}
// Create a blank page.
hr = xpsFactory->CreatePartUri(
L"/Documents/1/Pages/1.fpage", &opcPartUri );
hr = xpsFactory->CreatePage(
&pageSize, // Page size
L"en-US", // Page language
opcPartUri, // Page part name
&xpsPage);
// Release this URI to reuse the interface pointer.
if (NULL != opcPartUri) {opcPartUri->Release(); opcPartUri = NULL;}
// Create a page reference for the page.
hr = xpsFactory->CreatePageReference( &pageSize, &xpsPageRef );
// Add the fixed document sequence to the package.
hr = xpsPackage->SetDocumentSequence( xpsFDS );
// Get the document collection of the fixed document sequence
// and then add the document to the collection.
hr = xpsFDS->GetDocuments( &fixedDocuments );
hr = fixedDocuments->Append( xpsFD );
// Get the page reference collection from the document
// and add the page reference and blank page.
hr = xpsFD->GetPageReferences( &pageRefs );
hr = pageRefs->Append( xpsPageRef );
hr = xpsPageRef->SetPage( xpsPage );
// Release interface pointer
if (NULL != xpsPage) xpsPage->Release();
if (NULL != pageRefs) pageRefs->Release();
if (NULL != fixedDocuments) fixedDocuments->Release();
if (NULL != xpsPageRef) xpsPageRef->Release();
if (NULL != xpsFD) xpsFD->Release();
if (NULL != xpsFDS) xpsFDS->Release();
if (NULL != xpsPackage) xpsPackage->Release();
Bewährte Methoden
Nachdem Sie eine IOpcPartUri-Schnittstelle zum Erstellen einer Komponente (z. B. nach dem Aufrufen der CreateDocument-Methode im Codebeispiel) verwendet haben, geben Sie den Zeiger auf diese Schnittstelle frei, es sei denn, Sie benötigen sie für einen anderen Aufruf.
Zugehörige Themen
-
Nächste Schritte
-
Auf dieser Seite verwendet
-
Weitere Informationen