Compartilhar via


Trabalhando com interfaces IXpsOMDocument

Este tópico descreve as interfaces que fornecem acesso aos componentes no nível do documento de um OM XPS.

Nome da interface Interfaces filho lógicas Descrição
IXpsOMDocument
IXpsOMPageReference
Representa uma única parte FixedDocument e associa uma coleção de referências de página.
IXpsOMPageReferenceCollection é a interface de coleção usada para iterar por meio das interfaces IXpsOMPageReference em um documento.
IXpsOMDocumentStructureResource
Nenhum
Representa a parte DocumentStructure.

Exemplos de código

Os exemplos de código nesta seção ilustram como algumas das interfaces de documento são usadas em um programa.

Obter as referências de página de um documento

O exemplo de código a seguir obtém um ponteiro para o IXpsOMPageReferenceCollection que contém a lista de interfaces IXpsOMPageReference para o documento referenciado pelo parâmetro doc .

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

Obter a estrutura do documento de um documento

O exemplo de código a seguir obtém o recurso que contém a estrutura do 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();