Freigeben über


XPS OM-Paketschnittstellen

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 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();

Verwenden der IXpsOMPackageWriter-Schnittstelle

Navigieren im XPS-OM-

IXpsOMDocumentSequence Interface

IXpsOMPackage Interface

IXpsOMPackageWriter Interface

IXpsOMCoreProperties Interface