Condividi tramite


Uso delle interfacce IXpsOMDocument

In questo argomento vengono descritte le interfacce che forniscono l'accesso ai componenti a livello di documento di un file XPS OM.

Nome interfaccia Interfacce figlie logiche Descrizione
IXpsOMDocument
IXpsOMPageReference
Rappresenta una singola parte FixedDocument e associa una raccolta di riferimenti di pagina.
IXpsOMPageReferenceCollection è l'interfaccia di raccolta usata per scorrere le interfacce IXpsOMPageReference in un documento.
IXpsOMDocumentStructureResource
Nessuno
Rappresenta la parte DocumentStructure.

Esempi di codice

Gli esempi di codice in questa sezione illustrano come alcune interfacce del documento vengono usate in un programma.

Ottenere i riferimenti alla pagina di un documento

Il seguente esempio di codice ottiene un puntatore alla IXpsOMPageReferenceCollection che contiene l'elenco delle interfacce IXpsOMPageReference per il documento di cui il parametro doc fa riferimento.

    HRESULT                               hr = S_OK;


    IXpsOMPageReferenceCollection         *pages;
    IXpsOMPageReference                   *pageRef;
    IXpsOMPage                            *page;

    UINT32  numPageRefs = 0;
    UINT32  thisPageRef = 0;

    // get the doc contents
    hr = doc->GetPageReferences(&pages);
        
    // walk the collection of page references
    hr = pages->GetCount(&numPageRefs);
    thisPageRef = 0;
    while (thisPageRef < numPageRefs) {
        // get this page reference
        hr = pages->GetAt(thisPageRef, &pageRef);

        // get the page content of this page reference
        hr = pageRef->GetPage (&page);

        // use the page

        // free this page & page reference and go to next
        page->Release();
        pageRef->Release();
        thisPageRef++;
    }

    pages->Release();

Ottenere la struttura di un documento

Nell'esempio di codice seguente viene recuperata la risorsa che contiene la struttura del documento.

    HRESULT                             hr = S_OK;
    
    IXpsOMDocumentStructureResource     *docStruct;
    IStream                             *docStructResStream;

    // doc is passed in as an argument
    // get the doc contents
    hr = doc->GetDocumentStructureResource(&docStruct);
   
    hr = docStruct->GetStream ( &docStructResStream );

    // access the document structure resource 
    //  contents by reading from the stream

    docStructResStream->Release();
    docStruct->Release();