Trabalhar com telas (canvases) dentro do XPS
Recortar (clip) e transformar (transform) telas em arquivos XPS usando a API C++
Nos arquivos XPS, uma tela (canvas) é uma área retangular em uma página onde conteúdo visual, como texto, imagens e formas, pode ser desenhado. Ela funciona como um contêiner para esses elementos e fornece uma estrutura para organizá-los e agrupá-los em camadas (layering). As telas podem ser reutilizadas em diferentes partes do documento ou até mesmo em vários documentos, o que oferece uma forma flexível de estruturar e organizar o conteúdo em um documento XPS. Principais características das telas nos arquivos XPS:
- As telas podem ser aninhadas (nested) dentro de outras telas, criando uma estrutura hierárquica que permite layouts (layouts) complexos e agrupamento de elementos.
- As telas podem ser transformadas usando várias operações, como translação (translation), rotação (rotation) e dimensionamento (scaling). Isso permite o posicionamento flexível e o redimensionamento do conteúdo.
- As telas podem ser recortadas (clip) em regiões específicas, limitando a área visível de seu conteúdo. Isso é útil para criar formas e efeitos intrincados.
- As telas podem conter diferentes elementos visuais, incluindo execuções de texto (text runs), parágrafos e caixas de texto (text boxes). Elas também podem conter imagens, formas geométricas e outras telas.
Gerenciar telas em documentos é um dos recursos oferecidos pelo Aspose.Page para C++. Esta solução funciona com diferentes linguagens de descrição de página, XPS em particular.
Para transformar (transform) as telas de um arquivo XPS, siga o guia abaixo:
- Crie um arquivo XPS usando a classe XpsDocument.
- Crie a tela principal, comum a todos os elementos da página, usando o método AddCanvas().
- Defina deslocamentos à esquerda e ao topo na tela principal usando o método CreateMatrix().
- Crie a geometria de caminho retangular (rectangle path geometry) com o método CreatePathGeometry().
- Crie um preenchimento para os retângulos usando a classe XpsBrush.
- Para criar um retângulo na tela 2 e preenchê-lo, use a classe XpsPath.
- Para mover a tela 3 a fim de posicionar um novo retângulo abaixo do retângulo anterior, use o método CreateMatrix().
- Para mover esta tela para o lado direito da página, use o método Translate().
- Para dimensionar (scale) a tela 4, chame o método Scale().
- Para girar (rotate) a tela 5 em torno de um ponto em 45 graus; o método RotateAround() é muito útil.
- Salve o documento XPS alterado usando o método XpsDocument.Save().
A transformação da tela (canvas transformation)
Para recortar (clip) as telas de um arquivo XPS, siga o guia abaixo:
- Crie ou abra um arquivo XPS usando a classe XpsDocument.
- Crie a tela principal, comum a todos os elementos da página, usando o método AddCanvas().
- Defina deslocamentos à esquerda e ao topo na tela principal usando o método CreateMatrix().
- Crie a geometria de caminho retangular com o método CreatePathGeometry().
- Crie um preenchimento para os retângulos usando a classe XpsBrush.
- Para adicionar outra tela com recorte (clip) à tela principal, chame o método AddCanvas() novamente.
- Crie a geometria do círculo para o recorte usando a classe XpsPathGeometry.
- Para criar um retângulo nesta tela e preenchê-lo, use a classe XpsPath.
- Adicione outra tela com o método AddCanvas(), crie um retângulo nesta tela e aplique o traçado (stroke) com a classe XpsPathGeometry.
- Salve o documento XPS alterado usando o método XpsDocument.Save().
O recorte da tela (canvas clipping)
XPS O que é XPS Formato de Arquivo
XPS (XML Paper Specification) é a alternativa da Microsoft ao PDF. Baseado em XML/HTML, preserva o layout em diferentes plataformas e é independente do sistema operacional.