Trabalhar com telas dentro de XPS
Recortar e transformar telas de arquivos XPS usando API para .NET
Gerenciar Telas (Canvases) nos documentos é um dos recursos oferecidos pelo Aspose.Page para .NET. Esta é uma solução para trabalhar com diferentes Linguagens de Descrição de Página, especificamente XPS. No exemplo abaixo, você descobrirá como:
Criar uma tela em um arquivo XPS.
Fazer deslocamentos (offsets) à esquerda e no topo na tela principal.
Adicionar uma nova tela com uma transformação de translação à tela principal.
Adicionar uma nova tela com uma transformação de rotação em torno de um ponto à tela principal.
Recortar (clip) tela. E muitas outras manipulações com telas em arquivos XPS.
Para transformar telas de um arquivo XPS, siga o seguinte guia:
- Crie um arquivo XPS usando a Classe XpsDocument .
- Crie a tela principal, comum a todos os elementos da página com o Método AddCanvas() .
- Faça deslocamentos à esquerda e no topo na tela principal usando o Método CreateMatrix() .
- Crie a geometria do caminho do retângulo com o Método CreatePathGeometry() .
- Crie um preenchimento para retângulos por meio da Classe XpsBrush .
- Para criar um retângulo na tela 2 e preenchê-lo, use a Classe XpsPath .
- Para transladar a tela 3 para posicionar um novo retângulo abaixo do retângulo anterior, use o Método CreateMatrix() .
- Para transladar esta tela para o lado direito da página, use o Método Translate() .
- Para dimensionar a tela 4, chame o Método Scale() .
- Para girar 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() .
Código C# de Transformação de Tela de arquivo XPS
using Aspose.Page.Xps;
using Aspose.Page.Xps.XpsModel;
using System.Drawing; // The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithCanvas();
// Create a new XPS Document
XpsDocument doc = new XpsDocument();
// Create main canvas, common for all page elemnts
XpsCanvas canvas1 = doc.AddCanvas();
// Make left and top offsets in the main canvas
canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);
// Create the rectangle path geometry
XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 200,0 200,100 0,100 Z");
// Create a fill for rectangles
XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
// Add new canvas without any transformations to the main canvas
XpsCanvas canvas2 = canvas1.AddCanvas();
// Create rectangle in this canvas and fill it
XpsPath rect = canvas2.AddPath(rectGeom);
rect.Fill = fill;
// Add new canvas with translate transformation to the main canvas
XpsCanvas canvas3 = canvas1.AddCanvas();
// Translate this canvas to position new rectangle below the previous rectnagle
canvas3.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 200);
// Translate this canvas to the right side of the page
canvas3.RenderTransform.Translate(500, 0);
// Create the rectangle in this canvas and fill it
rect = canvas3.AddPath(rectGeom);
rect.Fill = fill;
// Add new canvas with the double scale transformation to the main canvas
XpsCanvas canvas4 = canvas1.AddCanvas();
// Translate this canvas to position new rectangle below the previous rectnagle
canvas4.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 400);
// Scale this canvas
canvas4.RenderTransform.Scale(2, 2);
// Create a rectangle in this canvas and fill it
rect = canvas4.AddPath(rectGeom);
rect.Fill = fill;
// Add new canvas with rotation around a point transformation to the main canvas
XpsCanvas canvas5 = canvas1.AddCanvas();
// Translate this canvas to position new rectangle below the previous rectnagle
canvas5.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 800);
// Rotate this canvas aroud a point on 45 degrees
canvas5.RenderTransform.RotateAround(45, new PointF(100, 50));
rect = canvas5.AddPath(rectGeom);
rect.Fill = fill;
// Save the resultant XPS document
doc.Save(dataDir + "output1.xps");Para Recortar telas de arquivo XPS, siga o seguinte guia:
- Crie ou abra um arquivo XPS usando a Classe XpsDocument.
- Crie a tela principal com o Método AddCanvas() .
- Faça deslocamentos à esquerda e no topo na tela principal usando o Método CreateMatrix() .
- Crie a geometria do caminho do retângulo com o Método CreatePathGeometry() .
- Crie um preenchimento para retângulos por meio da Classe XpsBrush .
- Para adicionar outra tela com um recorte à 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 contorne-o com a Classe XpsPathGeometry.
- Salve o documento XPS alterado por meio do Método XPsDocument.Save().
Código C# de recorte (clipping) de tela de arquivo XPS
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_WorkingWithCanvas();
// Create a new XPS Document
XpsDocument doc = new XpsDocument();
// Create main canvas, common for all page elemnts
XpsCanvas canvas1 = doc.AddCanvas();
// Make left and top offsets in the main canvas
canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);
// Create the rectangle path geometry
XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 500,0 500,300 0,300 Z");
// Create a fill for rectangles
XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
// Add another canvas with the clip to the main canvas
XpsCanvas canvas2 = canvas1.AddCanvas();
// Create circle geometry for the clip
XpsPathGeometry clipGeom = doc.CreatePathGeometry("M250,250 A100,100 0 1 1 250,50 100,100 0 1 1 250,250");
canvas2.Clip = clipGeom;
// Create rectangle in this canvas and fill it
XpsPath rect = canvas2.AddPath(rectGeom);
rect.Fill = fill;
// Add the second canvas with stroked rectangle to the main canvas
XpsCanvas canvas3 = canvas1.AddCanvas();
// Create rectangle in this canvas and stroke it
rect = canvas3.AddPath(rectGeom);
rect.Stroke = fill;
rect.StrokeThickness = 2;
// Save resultant XPS document
doc.Save(dataDir + "output2.xps");Perguntas frequentes
1. Como posso adicionar uma tela a um arquivo XPS?
Defina o caminho para o diretório de documentos. Para adicionar telas use o método AddCanvas().
2. Como manipular deslocamentos de tela em um arquivo XPS?
Defina o caminho para o diretório de documentos e adicione telas. Use o método CreateMatrix() para fazer deslocamentos.
3. Quais operações com telas no arquivo XPS são suportadas?
Você pode criar, recortar e adicionar uma tela, bem como manipular seus deslocamentos.
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.