Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje, jak používat rozhraní související s plátnem XPS Document API v XPS OM.
| Název rozhraní | Logická podřízená rozhraní | Popis |
|---|---|---|
|
IXpsOMVisual |
IXpsOMCanvas IXpsOMGlyphs IXpsOMPath |
Základní třída rozhraní, která definují vizuální objekty, jako je text a grafika. Vizuální objekty lze shromažďovat v IXpsOMVisualCollection rozhraní. |
|
IXpsOMCanvas |
IXpsOMCanvas IXpsOMGlyphs IXpsOMPath |
Kolekce vizuálních objektů, které lze považovat za jeden objekt vizuálu. |
IXpsOMVisual je základní rozhraní; viditelné objekty stránky z něj dědí. IXpsOMCanvas dědí z IXpsOMVisual a umožňuje seskupit a pracovat s mnoha dalšími vizuálními prvky jako s jedním vizuálním prvkem. Můžete například použít rozhraní IXpsOMCanvas k vytvoření banneru stránky, který obsahuje kolekci textových a grafických prvků. Takový banner může obsahovat logo, firemní heslo a adresu společnosti. Všechny tyto prvky můžete umístit do IXpsOMVisualCollection rozhraní IXpsOMCanvas a pak použít jednu transformaci na IXpsOMCanvas objekt změnit jeho velikost na konkrétní stránku. To je mnohem jednodušší než výpočet a použití transformace na každou jednotlivou vizuální komponentu v banneru.
Pomocí plátna můžete také změnit velikost obsahu stránky tak, aby odpovídala aktuální velikosti stránky. Abyste toho dosáhli, umístěte veškerý obsah stránky na jedno plátno, a poté aplikujte příslušnou transformaci tak, aby se plátno vešlo na aktuální velikost stránky. Je to také mnohem jednodušší než pokus o změnu velikosti jednotlivých prvků vizuálů v kolekci vizuálů na stránce.
Přesunutí obsahu stránky na plátno
Následující příklad kódu přesune obsah stránky na plátno.
HRESULT hr = S_OK;
IXpsOMVisualCollection *pageVisuals;
IXpsOMVisualCollection *canvasVisuals;
IXpsOMVisual *oneVisual;
IXpsOMCanvas *newPageCanvas;
UINT32 numVisuals = 0;
UINT32 thisVisual;
// get the page's visual collection
// and how many objects it contains
hr = page->GetVisuals( &pageVisuals );
hr = pageVisuals->GetCount ( &numVisuals );
// create the new canvas object and
// its (empty) visual collection
hr = xpsFactory->CreateCanvas ( &newPageCanvas );
hr = newPageCanvas->GetVisuals ( &canvasVisuals );
// go through the page's list of visual objects,
// move each one from the page's list to the canvas' list
// release the local pointer
// remove it from the page's collection
thisVisual = 0;
while (thisVisual < numVisuals) {
hr = pageVisuals->GetAt (0, &oneVisual);
hr = canvasVisuals->Append (oneVisual);
hr = pageVisuals->RemoveAt (0);
thisVisual++;
}
// the page's visual collection should be empty
hr = pageVisuals->GetCount (&numVisuals);
_ASSERT (0 == numVisuals);
// add the new canvas to the page's visual collection
pageVisuals->Append ( newPageCanvas );
Související témata
- [**IXpsOMCanvas – rozhraní**](/windows/desktop/api/xpsobjectmodel/nn-xpsobjectmodel-ixpsomcanvas)
- [**IXpsOMVisual Interface**](/windows/desktop/api/xpsobjectmodel/nn-xpsobjectmodel-ixpsomvisual)
- [**Rozhraní IXpsOMVisualCollection**](/windows/desktop/api/xpsobjectmodel/nn-xpsobjectmodel-ixpsomvisualcollection)