Condividi tramite


Interfacce del pacchetto XPS OM

Le interfacce del pacchetto rappresentano il livello superiore di XPS OM, che corrisponde a un file di documento XPS. Queste interfacce contengono metodi che serializzano un XPS OM in un documento o in un flusso XPS e deserializzare un pacchetto XPS per creare un pacchetto XPS OM che consente a un programma di accedere al contenuto di un documento.

Nome interfaccia Interfacce figlio logiche Descrizione
IXpsOMPackage
IXpsOMDocumentSequence
IXpsOMCoreProperties
L'OM XPS completo che corrisponde al pacchetto che contiene il documento XPS.
IXpsOMPackageWriter
Nessuno
Abilita la serializzazione incrementale delle pagine dei documenti in un pacchetto.
IXpsOMCoreProperties
Nessuno
Accede ai metadati del documento.

Esempi di codice

Gli esempi di codice che seguono illustrano come vengono usate alcune interfacce del pacchetto da un programma. A meno che non sia indicato in caso contrario, tutti gli elementi corsivi sono nomi di parametri.

Leggere un documento XPS in un XPS OM

Da un documento XPS esistente il cui nome file viene archiviato in xpsDocumentFilename, questo esempio di codice crea un'om XPS a cui fa riferimento xpsPackage.

    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.

Scrivere un file di documento XPS OM in un file di documento XPS

L'esempio di codice seguente scrive l'OM XPS a cui fa riferimento xpsPackage. Nell'esempio viene creato un documento XPS nel file il cui nome viene archiviato in fileName.

    HRESULT hr = S_OK;

    hr = xpsPackage->WriteToFile(
        xpsDocumentFilename,
        NULL,                    // LPSECURITY_ATTRIBUTES
        FILE_ATTRIBUTE_NORMAL,
        FALSE);                  // optimizeMarkupSize

Accedere alla sequenza di documenti dell'OM XPS

Nell'esempio di codice seguente viene ottenuto un puntatore all'interfaccia IXpsOMDocumentSequence , che contiene la sequenza di documenti dell'OM XPS rappresentata da xpsPackage.

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

Accedere alle proprietà di base del documento

Nell'esempio di codice seguente viene ottenuto un puntatore all'interfaccia IXpsOMCoreProperties , consentendo al programma di accedere al contenuto della parte CoreProperties. Nell'esempio si presuppone che il documento sia stato letto in un OM XPS rappresentato da xpsPackage.

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

Uso dell'interfaccia IXpsOMPackageWriter

Esplorare XPS OM

Interfaccia IXpsOMDocumentSequence

Interfaccia IXpsOMPackage

Interfaccia IXpsOMPackageWriter

Interfaccia IXpsOMCoreProperties