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 OM XPS.

Nome interfaccia Interfacce figlio logiche Descrizione
IXpsOMDocument
IXpsOMPageReference
Rappresenta una singola parte FixedDocument e associa una raccolta di riferimenti di pagina.
IXpsOMPageReferenceCollection è l'interfaccia della 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 vengono usate alcune interfacce del documento in un programma.

Ottenere i riferimenti alla pagina di un documento

L'esempio di codice seguente ottiene un puntatore all'oggetto IXpsOMPageReferenceCollection che contiene l'elenco di interfacce IXpsOMPageReference per il documento a cui fa riferimento il parametro del documento .

    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 del documento di un documento

L'esempio di codice seguente ottiene la risorsa contenente 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();