Verwenden der IXpsOMPackageWriter-Schnittstelle
Die IXpsOMPackageWriter-Schnittstelle erstellt eine XPS-Dokumentdatei, in die Anwendungen den Inhalt der IXpsOMPage-Schnittstellen eines XPS-OM schreiben können. Die IXpsOMPackageWriter-Schnittstelle ist am nützlichsten, wenn Dokumentinhalte sequenziell verarbeitet oder erstellt werden. Im Gegensatz zu den WriteToFile- und WriteToStream- Methoden der IXpsOMPackage-Schnittstelle muss für die IXpsOMPackageWriter-Schnittstelle weder das gesamte FixedDocument noch das FixedDocumentSequence-Element verwendet werden.
Überblick
Die IXpsOMPackageWriter-Schnittstelle schreibt jeweils eine Seite, von der ersten Seite eines XPS-Dokuments bis zum letzten. Die Schnittstelle kann verwendet werden, um einfache XPS-Dokumentdateien und auch komplexe XPS-Dokumentdateien zu erstellen, die mehr als ein FixedDocument im FixedDocumentSequence enthalten. In komplexen XPS-Dokumentdateien werden die FixedDocuments auch in Sequenz erstellt, beginnend mit dem ersten FixedDocument in der FixedDocumentSequence. Die IXpsOMPackageWriter-Schnittstelle unterstützt keine Erstellung von Dokumentinhalten in zufälliger Reihenfolge. Verwenden Sie diese zum Beispiel, um einen sequenziellen Bericht zu erstellen oder die Verarbeitung in einem Gerätetreiberfilter durchzuführen, bei dem die Dokumentinhalte nacheinander an den Treiber übergeben werden.
Terminologieüberprüfung
Eine XPS-Dokumentdatei ist ein OPC-Paket (Open Packaging Conventions), das der XML-Papierspezifikation entspricht. Technisch erstellt die IXpsOMPackageWriter-Schnittstelle also ein OPC-Paket, aber es handelt sich um ein OPC-Paket, das der XML-Papierspezifikation entspricht. Aus diesem Grund werden in Diskussionen über XPS-Dokumente die Begriffe XPS-Dokument und Paket häufig austauschbar verwendet.
Das von der IXpsOMPackageWriter-Schnittstelle erstellte Paket enthält die erforderlichen XPS-Dokumentkomponenten: eine FixedDocumentSequence, mindestens ein FixedDocument und mindestens eine FixedPage. Das FixedDocumentSequence-Element wird erstellt, wenn die IXpsOMPackageWriter-Schnittstelle instanziiert wird. Ein FixedDocument wird jedes Mal erstellt, wenn IXpsOMPackageWriter::StartNewDocument aufgerufen wird und jedes Mal, wenn IXpsOMPackageWriter::AddPage aufgerufen wird, wird eine FixedPage erstellt. Da die Schnittstelle den Dokumentinhalt sequenziell schreibt, fügt die AddPage-Methode die Seite dem zuletzt erstellten FixedDocument hinzu.
Verwenden der IXpsOMPackageWriter-Schnittstelle
Im folgenden Verfahren wird das Erstellen einer XPS-Dokumentdatei mithilfe der IXpsOMPackageWriter-Schnittstelle beschrieben. Das Verfahren beschreibt nicht, wie Sie eine IXpsOMPage-Schnittstelle und deren Inhalt instanziieren. Weitere Informationen zu IXpsOMPage und zum Hinzufügen von Inhalten zu einer Seite finden Sie unter XPS OM Page-Schnittstelle und den Themen, die im Abschnitt „Siehe auch“ aufgeführt sind.
Erstellen eines Dokuments
Instanziieren Sie eine IXpsOMPackageWriter-Schnittstelle.
Dadurch wird ein leeres FixedDocumentSequence-Objekt im Paket erstellt.
- Rufen Sie zum Erstellen eines XPS-Dokuments in einer Datei IXpsOMObjectFactory::CreatePackageWriterOnFile auf.
- Rufen Sie zum Erstellen eines XPS-Dokuments in einem Stream IXpsOMObjectFactory::CreatePackageWriterOnStreamauf.
Starten Sie ein neues Dokument im Paket, indem Sie IXpsOMPackageWriter::StartNewDocument aufrufen.
Rufen Sie vor dem Hinzufügen einer Seite IXpsOMPackageWriter::StartNewDocument auf, um ein FixedDocument zum FixedDocumentSequence-Element hinzuzufügen, das in Schritt 1 erstellt wurde.
Inhalt hinzufügen.
- Um dem Dokument eine neue FixedPage hinzuzufügen, rufen Sie IXpsOMPackageWriter::AddPage auf, und richten sie einen Zeiger auf die IXpsOMPage-Schnittstelle mit dem Inhalt der FixedPage, die Sie hinzufügen möchten.
- Um ein neues FixedDocument in FixedDocumentSequence zu erstellen, rufen Sie IXpsOMPackageWriter::StartNewDocument auf.
Schließen Sie das Paket und dessen Inhalt, indem Sie IXpsOMPackageWriter::Close aufrufen.
Erweiterte Funktionen
Die Vorgehensweisen der IXpsOMPackageWriter-Schnittstelle unterstützen auch das Hinzufügen von Ressourcen, Miniaturansichten und Drucktickets. Diese Dokumentkomponenten können auf Paket-, FixedDocumentSequence-, FixedDocument- und FixedPage-Ebenen hinzugefügt werden. Weitere Informationen zur Verwendung dieser Schnittstelle zum Drucken finden Sie unter Drucken eines XPS-OM.
Zugehörige Themen