Lavorare con i canvas all’interno di XPS
Ritagliare (clip) e trasformare (transform) i canvas nei file XPS utilizzando l’API C++
Nei file XPS, un canvas è un'area rettangolare su una pagina in cui è possibile disegnare contenuti visivi, come testo, immagini e forme. Funge da contenitore per questi elementi e fornisce un framework per organizzarli e stratificarli (layering). I canvas possono essere riutilizzati in diverse parti del documento o anche in più documenti, il che fornisce un modo flessibile per strutturare e organizzare i contenuti all'interno di un documento XPS. Caratteristiche chiave dei canvas nei file XPS:
- I canvas possono essere annidati (nested) all’interno di altri canvas, creando una struttura gerarchica che consente layout (layouts) complessi e il raggruppamento di elementi.
- I canvas possono essere trasformati utilizzando varie operazioni, come traslazione (translation), rotazione (rotation) e ridimensionamento (scaling). Ciò consente un posizionamento flessibile e il ridimensionamento del contenuto.
- I canvas possono essere ritagliati (clip) in regioni specifiche, limitando l’area visibile del loro contenuto. Ciò è utile per creare forme ed effetti intricati.
- I canvas possono contenere diversi elementi visivi, inclusi esecuzioni di testo (text runs), paragrafi e caselle di testo (text boxes). Possono anche contenere immagini, forme geometriche e altri canvas.
La gestione dei canvas nei documenti è una delle funzionalità offerte da Aspose.Page per C++. Questa soluzione funziona con diversi linguaggi di descrizione della pagina, XPS in particolare.
Per trasformare (transform) i canvas di un file XPS, segui la guida di seguito:
- Crea un file XPS utilizzando la classe XpsDocument.
- Crea il canvas principale, comune a tutti gli elementi della pagina, utilizzando il metodo AddCanvas().
- Effettua offset sinistro e superiore nel canvas principale utilizzando il metodo CreateMatrix().
- Crea una geometria del percorso rettangolare (rectangle path geometry) con il metodo CreatePathGeometry().
- Crea un riempimento per i rettangoli utilizzando la classe XpsBrush.
- Per creare un rettangolo nel canvas 2 e riempirlo, utilizza la classe XpsPath.
- Per traslare il canvas 3 in modo da posizionare un nuovo rettangolo sotto il rettangolo precedente, utilizza il metodo CreateMatrix().
- Per traslare questo canvas sul lato destro della pagina, usa il metodo Translate().
- Per ridimensionare (scale) il canvas 4, chiama il metodo Scale().
- Per ruotare (rotate) il canvas 5 attorno a un punto di 45 gradi; il metodo RotateAround() è molto utile.
- Salva il documento XPS modificato utilizzando il metodo XpsDocument.Save().
La trasformazione del canvas (canvas transformation)
Per ritagliare (clip) i canvas di un file XPS, segui la guida di seguito:
- Crea o apri un file XPS usando la classe XpsDocument.
- Crea il canvas principale, comune a tutti gli elementi della pagina, utilizzando il metodo AddCanvas().
- Effettua offset sinistro e superiore nel canvas principale utilizzando il metodo CreateMatrix().
- Crea una geometria del percorso rettangolare con il metodo CreatePathGeometry().
- Crea un riempimento per i rettangoli utilizzando la classe XpsBrush.
- Per aggiungere un altro canvas con un clip al canvas principale, chiama nuovamente il metodo AddCanvas().
- Crea la geometria circolare per il clip usando la classe XpsPathGeometry.
- Per creare un rettangolo in questo canvas e riempirlo, usa la classe XpsPath.
- Aggiungi un altro canvas con il metodo AddCanvas(), quindi crea un rettangolo in questo canvas e traccialo con la classe XpsPathGeometry.
- Salva il documento XPS modificato utilizzando il metodo XpsDocument.Save().
Il ritaglio del canvas (canvas clipping)
XPS Cos'è il formato file XPS
XPS (XML Paper Specification) è l’alternativa Microsoft al PDF. Basato su XML/HTML, mantiene il layout su diverse piattaforme ed è indipendente dal sistema operativo.