Compartilhar via


Interfaces de pacote OM XPS

As interfaces de pacote representam o nível superior do OM XPS, que corresponde a um arquivo de documento XPS. Essas interfaces contêm métodos que serializam um OM XPS em um documento ou fluxo XPS e desserializam um pacote XPS para criar um OM XPS que permite que um programa acesse o conteúdo de um documento.

Nome da interface Interfaces filho lógicas Descrição
IXpsOMPackage
IXpsOMDocumentSequence
IXpsOMCoreProperties
O OM XPS completo que corresponde ao pacote que contém o documento XPS.
IXpsOMPackageWriter
Nenhum
Habilita a serialização incremental de páginas de documentos em um pacote.
IXpsOMCoreProperties
Nenhum
Acessa os metadados do documento.

Exemplos de código

Os exemplos de código a seguir ilustram como algumas das interfaces de pacote são usadas por um programa. A menos que seja observado o contrário, todos os itens itálicos são nomes de parâmetro.

Ler um documento XPS em um OM XPS

Em um documento XPS existente cujo nome de arquivo é armazenado em xpsDocumentFilename, este exemplo de código cria um OM XPS referenciado por 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.

Gravar um OM XPS em um arquivo de documento XPS

O exemplo de código a seguir grava o OM XPS referenciado por xpsPackage. O exemplo cria um documento XPS no arquivo cujo nome é armazenado em fileName.

    HRESULT hr = S_OK;

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

Acessar a sequência de documentos do OM XPS

O exemplo de código a seguir obtém um ponteiro para a interface IXpsOMDocumentSequence, que contém a sequência de documentos do OM XPS representada 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);

Acessar o CoreProperties do documento

O exemplo de código a seguir obtém um ponteiro para a interfaceIXpsOMCoreProperties, permitindo que o programa acesse o conteúdo da parte CoreProperties. No exemplo, supõe-se que o documento tenha sido lido em um 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();

usando a interface IXpsOMPackageWriter

navegar no de OM do XPS

interface IXpsOMDocumentSequence

interface IXpsOMPackage

interface IXpsOMPackageWriter

interface IXpsOMCoreProperties