Trabajar con imágenes en archivos XPS | .NET
Agregar imagen dentro de documentos XPS
Aspose.Page para .NET ofrece la clase XpsPath, con la que puedes agregar imágenes en un documento XPS. Debe crear XpsMatrix y XpsImageBrush y guardar XpsDocument. El siguiente fragmento de código muestra la funcionalidad completa para agregar una imagen en un documento XPS:
1// Add image to XPS document.
2
3// Create new XPS Document
4XpsDocument doc = new XpsDocument();
5
6string outputFileName = "AddImage_outXPS.xps";
7
8// Add Image
9XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
10//Creating a matrix is optional, it can be used for proper positioning
11path.RenderTransform = doc.CreateMatrix(0.7f, 0f, 0f, 0.7f, 0f, 20f);
12//Create Image Brush
13path.Fill = doc.CreateImageBrush(DataDir + "QL_logo_color.tif", new RectangleF(0f, 0f, 258.24f, 56.64f), new RectangleF(50f, 20f, 193.68f, 42.48f));
14// Save resultant XPS document
15doc.Save(OutputDir + outputFileName);
El resultado of running this code is next
Agregar imagen en mosaico
La solución ofrece la clase XpsPath, con la que puede agregar imágenes en documentos XPS. Para esto, primero necesita crear XpsMatrix y un XpsImageBrush, luego especificar el modo XpsTileMode.Tile y guardar XpsDocument.
El siguiente fragmento de código muestra la funcionalidad completa para agregar una imagen en mosaico en un documento XPS:
1// Paint rectangle with tiled image (texture pattern) in XPS document.
2
3// Create new XPS Document
4XpsDocument doc = new XpsDocument();
5
6string outputFileName = "AddTextureTilingPattern_outXPS.xps";
7
8// Tile image
9// ImageBrush filled rectangle in the right top bellow
10XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,160 L 228,160 228,305 10,305"));
11path.Fill = doc.CreateImageBrush(DataDir + "R08LN_NN.jpg", new RectangleF(0f, 0f, 128f, 96f), new RectangleF(0f, 0f, 64f, 48f));
12((XpsImageBrush)path.Fill).TileMode = XpsTileMode.Tile;
13path.Fill.Opacity = 0.5f;
14// Save resultant XPS document
15doc.Save(OutputDir + outputFileName);
El resultado of running this code is next
Puede descargar ejemplos y archivos de datos desde GitHub.