Interfacce del pacchetto XPS OM
Le interfacce del pacchetto rappresentano il livello superiore di XPS OM, che corrisponde a un file di documento XPS. Queste interfacce contengono metodi che serializzano un XPS OM in un documento o in un flusso XPS e deserializzare un pacchetto XPS per creare un pacchetto XPS OM che consente a un programma di accedere al contenuto di un documento.
Nome interfaccia | Interfacce figlio logiche | Descrizione |
---|---|---|
IXpsOMPackage |
IXpsOMDocumentSequence IXpsOMCoreProperties |
L'OM XPS completo che corrisponde al pacchetto che contiene il documento XPS. |
IXpsOMPackageWriter |
Nessuno |
Abilita la serializzazione incrementale delle pagine dei documenti in un pacchetto. |
IXpsOMCoreProperties |
Nessuno |
Accede ai metadati del documento. |
Esempi di codice
Gli esempi di codice che seguono illustrano come vengono usate alcune interfacce del pacchetto da un programma. A meno che non sia indicato in caso contrario, tutti gli elementi corsivi sono nomi di parametri.
- Leggere un documento XPS in un XPS OM
- Scrivere un file di documento XPS OM in un file di documento XPS
- Accedere alla sequenza di documenti dell'OM XPS
- Accedere alle proprietà di base del documento
Leggere un documento XPS in un XPS OM
Da un documento XPS esistente il cui nome file viene archiviato in xpsDocumentFilename, questo esempio di codice crea un'om XPS a cui fa riferimento 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.
Scrivere un file di documento XPS OM in un file di documento XPS
L'esempio di codice seguente scrive l'OM XPS a cui fa riferimento xpsPackage. Nell'esempio viene creato un documento XPS nel file il cui nome viene archiviato in fileName.
HRESULT hr = S_OK;
hr = xpsPackage->WriteToFile(
xpsDocumentFilename,
NULL, // LPSECURITY_ATTRIBUTES
FILE_ATTRIBUTE_NORMAL,
FALSE); // optimizeMarkupSize
Accedere alla sequenza di documenti dell'OM XPS
Nell'esempio di codice seguente viene ottenuto un puntatore all'interfaccia IXpsOMDocumentSequence , che contiene la sequenza di documenti dell'OM XPS rappresentata da 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);
Accedere alle proprietà di base del documento
Nell'esempio di codice seguente viene ottenuto un puntatore all'interfaccia IXpsOMCoreProperties , consentendo al programma di accedere al contenuto della parte CoreProperties. Nell'esempio si presuppone che il documento sia stato letto in un OM XPS rappresentato da 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();