Trabajar con interfaces IXpsOMDocument
En este tema se describen las interfaces que proporcionan acceso a los componentes de nivel de documento de un OM XPS.
Nombre de la interfaz | Interfaces secundarias lógicas | Descripción |
---|---|---|
IXpsOMDocument |
IXpsOMPageReference |
Representa un único elemento FixedDocument y enlaza una colección de referencias de página. IXpsOMPageReferenceCollection es la interfaz de colección que se usa para recorrer en iteración las interfaces IXpsOMPageReference de un documento. |
IXpsOMDocumentStructureResource |
None |
Representa la parte DocumentStructure. |
Ejemplos de código
En los ejemplos de código de esta sección se muestra cómo se usan algunas de las interfaces de documento en un programa.
Obtener las referencias de página de un documento
En el ejemplo de código siguiente se obtiene un puntero a IXpsOMPageReferenceCollection que contiene la lista de interfaces IXpsOMPageReference del documento al que hace referencia el 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();
Obtención de la estructura del documento de un documento
En el ejemplo de código siguiente se obtiene el recurso que contiene la estructura 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();