Trabajar con lienzos (canvases) en XPS
Recortar (clip) y transformar (transform) lienzos en archivos XPS usando la API de C++
En los archivos XPS, un lienzo (canvas) es un área rectangular en una página donde se puede dibujar contenido visual, como texto, imágenes y formas. Sirve como contenedor de estos elementos y proporciona un marco para organizarlos y superponerlos. Los lienzos se pueden reutilizar en diferentes partes del documento o incluso en varios documentos, lo que brinda una forma flexible de estructurar y organizar el contenido dentro de un documento XPS. Características clave de los lienzos en archivos XPS:
- Los lienzos pueden anidarse dentro de otros lienzos, creando una estructura jerárquica que permite diseños (layouts) complejos y la agrupación de elementos.
- Los lienzos se pueden transformar utilizando diversas operaciones, como traslación (translation), rotación (rotation) y escala (scaling). Esto permite un posicionamiento flexible y el cambio de tamaño del contenido.
- Los lienzos se pueden recortar (clip) a regiones específicas, limitando el área visible de su contenido. Esto es útil para crear formas y efectos intrincados.
- Los lienzos pueden contener diferentes elementos visuales, incluidas ejecuciones de texto (text runs), párrafos y cuadros de texto (text boxes). También pueden contener imágenes, formas geométricas y otros lienzos.
La gestión de lienzos en documentos es una de las características que ofrece Aspose.Page para C++. Esta solución funciona con diferentes lenguajes de descripción de páginas, XPS en particular.
Para transformar (transform) los lienzos de un archivo XPS, siga la guía a continuación:
- Cree un archivo XPS utilizando la clase XpsDocument.
- Cree el lienzo principal, común a todos los elementos de la página, utilizando el método AddCanvas().
- Realice desplazamientos izquierdo y superior en el lienzo principal usando el método CreateMatrix().
- Cree una geometría de ruta rectangular (rectangle path geometry) con el método CreatePathGeometry().
- Cree un relleno para los rectángulos usando la clase XpsBrush.
- Para crear un rectángulo en el lienzo 2 y rellenarlo, use la clase XpsPath.
- Para trasladar el lienzo 3 a fin de posicionar un nuevo rectángulo debajo del rectángulo anterior, use el método CreateMatrix().
- Para trasladar este lienzo al lado derecho de la página, use el método Translate().
- Para escalar el lienzo 4, llame al método Scale().
- Para rotar el lienzo 5 alrededor de un punto 45 grados; el método RotateAround() es muy útil.
- Guarde el documento XPS modificado utilizando el método XpsDocument.Save().
La transformación del lienzo (canvas transformation)
Para recortar (clip) los lienzos de un archivo XPS, siga la guía a continuación:
- Cree o abra un archivo XPS usando la clase XpsDocument.
- Cree el lienzo principal, común a todos los elementos de la página, utilizando el método AddCanvas().
- Realice desplazamientos izquierdo y superior en el lienzo principal usando el método CreateMatrix().
- Cree una geometría de ruta rectangular con el método CreatePathGeometry().
- Cree un relleno para los rectángulos usando la clase XpsBrush.
- Para agregar otro lienzo con un recorte (clip) al lienzo principal, llame al método AddCanvas() nuevamente.
- Cree una geometría circular para el recorte usando la clase XpsPathGeometry.
- Para crear un rectángulo en este lienzo y rellenarlo, use la clase XpsPath.
- Agregue otro lienzo con el método AddCanvas(), luego cree un rectángulo en este lienzo y trácelo con la clase XpsPathGeometry.
- Guarde el documento XPS modificado utilizando el método XpsDocument.Save().
El recorte del lienzo (canvas clipping)
XPS What is XPS File Format
XPS (XML Paper Specification) es el equivalente de Microsoft a PDF. Se basa en XML/HTML, mantiene el diseño en distintas plataformas y es independiente del sistema operativo.