Travailler avec des images dans un fichier XPS | .NET
Ajouter une image dans les documents XPS
Aspose.Page pour .NET propose la classe XpsPath, avec laquelle vous pouvez ajouter une image sur un document XPS.
Vous devez créer XpsMatrix et XpsImageBrush et enregistrer XpsDocument. L’extrait de code suivant montre la fonctionnalité complète pour ajouter une image sur un document 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);
Le résultat of running this code is next
Ajouter une image en mosaïque
La solution propose la classe XpsPath, avec laquelle vous pouvez ajouter des images sur des documents XPS. Pour cela, vous devez d’abord créer XpsMatrix et un XpsImageBrush, puis spécifier le mode XpsTileMode.Tile et enregistrer XpsDocument.
L’extrait de code suivant montre la fonctionnalité complète permettant d’ajouter une image en mosaïque sur un document 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);
Le résultat of running this code is next
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.