trabajar con lienzos
Recorte y transforme lienzos de archivos XPS
La gestión de lienzos en los documentos es una de las funciones que ofrece Aspose.Page para .NET. Esta es una solución para trabajar con diferentes lenguajes de descripción de página, XPS XPS en específico. En el siguiente ejemplo, descubrirá cómo:
Cree un lienzo en un archivo XPS.
Haga compensaciones izquierda y superior en el lienzo principal.
Agregue un nuevo lienzo con una transformación traducida al lienzo principal.
Agregue un nuevo lienzo con una rotación alrededor de una transformación de punto al lienzo principal.
Clip de lienzo. Y muchas más manipulaciones con lienzos en archivos XPS.
Para transformar lienzos de archivo XPS, siga la siguiente guía:
- Cree un archivo XPS usando XpsDocument Class .
- Cree el lienzo principal, común para todos los elementos de la página con el método AddCanvas() .
- Realice los desplazamientos izquierdo y superior en el lienzo principal mediante el método CreateMatrix() .
- Cree geometría de ruta de rectángulo con el método CreatePathGeometry() .
- Cree un relleno para rectángulos mediante la clase XpsBrush .
- Para crear un rectángulo en el lienzo 2 y rellenarlo, use la clase XpsPath .
- Para traducir el lienzo 3 para colocar un nuevo rectángulo debajo del rectángulo anterior, utilice el método CreateMatrix() .
- Para traducir este lienzo al lado derecho de la página, utilice el método Translate() .
- Para escalar el lienzo 4, llame al método Scale() .
- Para rotar el lienzo 5 alrededor de un punto de 45 grados, el método RotateAround() va útil.
- Guarde el documento XPS modificado con el método XPsDocument.Save() .
Archivo XPS Canvas Transformation Código C#
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 lienzos del archivo XPS, siga la siguiente guía:
- Cree o abra un archivo XPS utilizando XpsDocument Class.
- Cree el lienzo principal, común para todos los elementos de la página con el método AddCanvas() .
- Realice los desplazamientos izquierdo y superior en el lienzo principal mediante el método CreateMatrix() .
- Cree geometría de ruta de rectángulo con el método CreatePathGeometry() .
- Cree un relleno para rectángulos mediante la clase XpsBrush .
- Para agregar otro lienzo con un clip al lienzo principal, vuelva a llamar al método AddCanvas().
- Cree geometría circular para el clip usando la clase XpsPathGeometry .
- Para crear un rectángulo en este lienzo y rellenarlo, use la clase XpsPath .
- Agrega otro lienzo con el método AddCanvas(), luego crea un rectángulo en este lienzo y trázalo con la clase XpsPathGeometry.
- Guarde el documento XPS modificado mediante el método XPsDocument.Save().
Código C# de recorte de lienzo de archivo 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");
Preguntas más frecuentes
1. ¿Cómo puedo agregar un lienzo a un archivo XPS?
Establezca la ruta al directorio de documentos. Para agregar lienzos, utilice el método AddCanvas().
2. ¿Cómo manipular los desplazamientos del lienzo en un archivo XPS?
Establezca la ruta al directorio de documentos y agregue lienzos. Utilice el método CreateMatrix() para realizar compensaciones.
3. ¿Qué operaciones con lienzos en el archivo XPS se admiten?
Puede crear, recortar y agregar un lienzo, así como manipular sus desplazamientos.
XPS Qué es XPS Formato de archivo
El formato XPS es similar al formato PDF. Ambos son formatos de lenguaje de descripción de página (PDL). EPS se basa en HTML y no en lenguaje PostScript. El archivo .eps puede contener un marcado de la estructura del documento junto con la información sobre cómo se vería el documento. También hay instrucciones adicionales sobre cómo imprimir y renderizar el documento. La característica del formato es que corrige la descripción del documento, lo que significa que se verá igual sin importar quién y desde qué sistema operativo lo abra.