Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique explique comment utiliser les interfaces qui fournissent l’accès aux composants de document XPS dans un modèle d’interface utilisateur XPS.
| Nom de l’interface | Interfaces enfants logiques | Description |
|---|---|---|
|
IXpsOMPart |
IXpsOMDocumentSequence IXpsOMDocument IXpsOMPageReference IXpsOMCoreProperties IXpsOMResource |
Composants de document qui composent la structure de document. |
|
IXpsOMResource IXpsOMPartResources |
IXpsOMFontResource IXpsOMImageResource IXpsOMColorProfileResource IXpsOMPrintTicketResource IXpsOMRemoteDictionaryResource IXpsOMDocumentStructureResource IXpsOMStoryFragmentsResource IXpsOMSignatureBlockResource |
Composants de document qui contiennent des éléments utilisés ou référencés par une page ou un document. |
|
IXpsOMPartUriCollection |
Aucun |
Collection d’URI de partie. |
Exemples de code
Les exemples de code qui suivent montrent deux exemples d’utilisation des interfaces de partie pour accéder au contenu de l’om XPS.
Obtenir le nom d’un composant de document
L’exemple de code suivant accède à un composant de document et obtient le nom du composant.
HRESULT hr = S_OK;
IXpsOMDocumentSequence *docSeq;
IXpsOMDocumentCollection *docs;
IXpsOMDocument *doc;
IXpsOMPageReferenceCollection *pages;
IXpsOMPageReference *pageRef;
IXpsOMPage *page;
IOpcPartUri *thisDocPartUri;
IOpcPartUri *thisPagePartUri;
UINT32 numDocs = 0;
UINT32 thisDoc = 0;
UINT32 numPageRefs = 0;
UINT32 thisPageRef = 0;
// package points to the IXpsOMPackage interface to walk.
// get the fixed document sequence of the package
hr = package->GetDocumentSequence(&docSeq);
// get the fixed documents in the fixed document sequence
hr = docSeq->GetDocuments(&docs);
// walk the collection of documents;
hr = docs->GetCount(&numDocs);
thisDoc = 0;
while (thisDoc < numDocs) {
hr = docs->GetAt(thisDoc, &doc);
// get the part name (URI) of this document
hr = doc->GetPartName ( &thisDocPartUri );
// 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 part name (URI) of this page
hr = pageRef->GetPage (&page);
hr = page->GetPartName ( &thisPagePartUri );
// do something with the part name
thisPagePartUri->Release();
page->Release();
pageRef->Release();
thisPageRef++;
}
pages->Release();
thisDocPartUri->Release();
doc->Release();
thisDoc++;
}
docs->Release();
docSeq->Release();
Obtenir les ressources de partie associées à cette page
L’exemple de code suivant obtient les listes des différentes ressources utilisées par cette page.
HRESULT hr = S_OK;
IXpsOMPartResources *resources;
IXpsOMColorProfileResourceCollection *colorProfileResources;
IXpsOMFontResourceCollection *fontResources;
IXpsOMImageResourceCollection *imageResources;
IXpsOMRemoteDictionaryResourceCollection *dictionaryResources;
// pageRef contains the current page reference
hr = pageRef->CollectPartResources ( &resources );
// Get pointers to each type of resource
hr = resources->GetColorProfileResources( &colorProfileResources );
hr = resources->GetFontResources( &fontResources );
hr = resources->GetImageResources( &imageResources );
hr = resources->GetRemoteDictionaryResources( &dictionaryResources );
// use resources
dictionaryResources->Release();
imageResources->Release();
fontResources->Release();
colorProfileResources->Release();
resources->Release();