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:

  1. Cree un archivo XPS utilizando la clase XpsDocument.
  2. Cree el lienzo principal, común a todos los elementos de la página, utilizando el método AddCanvas().
  3. Realice desplazamientos izquierdo y superior en el lienzo principal usando el método CreateMatrix().
  4. Cree una geometría de ruta rectangular (rectangle path geometry) con el método CreatePathGeometry().
  5. Cree un relleno para los rectángulos usando la clase XpsBrush.
  6. Para crear un rectángulo en el lienzo 2 y rellenarlo, use la clase XpsPath.
  7. Para trasladar el lienzo 3 a fin de posicionar un nuevo rectángulo debajo del rectángulo anterior, use el método CreateMatrix().
  8. Para trasladar este lienzo al lado derecho de la página, use el método Translate().
  9. Para escalar el lienzo 4, llame al método Scale().
  10. Para rotar el lienzo 5 alrededor de un punto 45 grados; el método RotateAround() es muy útil.
  11. Guarde el documento XPS modificado utilizando el método XpsDocument.Save().
La transformación del lienzo (canvas transformation)
El siguiente fragmento de código muestra cómo recortar lienzos de archivos XPS dentro de la solución API Aspose.Page para C++.

Para recortar (clip) los lienzos de un archivo XPS, siga la guía a continuación:

  1. Cree o abra un archivo XPS usando la clase XpsDocument.
  2. Cree el lienzo principal, común a todos los elementos de la página, utilizando el método AddCanvas().
  3. Realice desplazamientos izquierdo y superior en el lienzo principal usando el método CreateMatrix().
  4. Cree una geometría de ruta rectangular con el método CreatePathGeometry().
  5. Cree un relleno para los rectángulos usando la clase XpsBrush.
  6. Para agregar otro lienzo con un recorte (clip) al lienzo principal, llame al método AddCanvas() nuevamente.
  7. Cree una geometría circular para el recorte usando la clase XpsPathGeometry.
  8. Para crear un rectángulo en este lienzo y rellenarlo, use la clase XpsPath.
  9. Agregue otro lienzo con el método AddCanvas(), luego cree un rectángulo en este lienzo y trácelo con la clase XpsPathGeometry.
  10. Guarde el documento XPS modificado utilizando el método XpsDocument.Save().
El recorte del lienzo (canvas clipping)

XPS Qué es XPS Formato de archivo

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.