Compartir a través de


Interfaces de paquete DE XPS OM

Las interfaces de paquete representan el nivel superior del OM XPS, que corresponde a un archivo de documento XPS. Estas interfaces contienen métodos que serializan un OM XPS en un documento o secuencia XPS y deserializan un paquete XPS para crear un OM XPS que permita a un programa acceder al contenido de un documento.

Nombre de la interfaz Interfaces secundarias lógicas Descripción
IXpsOMPackage
IXpsOMDocumentSequence
IXpsOMCoreProperties
El OM XPS completo que corresponde al paquete que contiene el documento XPS.
IXpsOMPackageWriter
None
Habilita la serialización incremental de páginas de documentos en un paquete.
IXpsOMCoreProperties
None
Obtiene acceso a los metadatos del documento.

Ejemplos de código

Los ejemplos de código siguientes muestran cómo un programa usa algunas de las interfaces de paquete. A menos que se indique lo contrario, todos los elementos en cursiva son nombres de parámetro.

Leer un documento XPS en un XPS OM

A partir de un documento XPS existente cuyo nombre de archivo se almacena en xpsDocumentFilename, este ejemplo de código crea un OM XPS al que hace referencia 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.

Escribir un OM XPS en un archivo de documento XPS

En el ejemplo de código siguiente se escribe el OM XPS al que hace referencia xpsPackage. En el ejemplo se crea un documento XPS en el archivo cuyo nombre se almacena en fileName.

    HRESULT hr = S_OK;

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

Obtener acceso a la secuencia de documentos del OM XPS

En el ejemplo de código siguiente se obtiene un puntero a la interfaz IXpsOMDocumentSequence , que contiene la secuencia de documentos del OM XPS representado por 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);

Acceso a CoreProperties del documento

El siguiente es el ejemplo de código que obtiene un puntero a la interfaz IXpsOMCoreProperties , lo que permite al programa acceder al contenido de la parte CoreProperties. En el ejemplo, se supone que el documento se ha leído en un OM XPS representado por 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();

Usar la interfaz IXpsOMPackageWriter

Navegación por el OM de XPS

IXpsOMDocumentSequence (interfaz)

IXpsOMPackage (Interfaz)

IXpsOMPackageWriter (Interfaz)

Interfaz IXpsOMCoreProperties