Convertir SVG en XPS – Exemples C#
XPS est un format de stockage et de visualisation de documents développé par Microsoft. Un fichier XPS présente un ensemble d’avantages qui prennent en charge des fonctions de sécurité, telles que les signatures numériques pour assurer une plus grande sécurité des documents, etc. Avec Aspose.HTML, vous pouvez convertir SVG au format XPS de manière programmatique en contrôlant totalement un large éventail de paramètres de conversion.
Dans cet article, vous trouverez des informations sur la façon de convertir SVG en XPS en utilisant les méthodes ConvertSVG() de la classe Converter et sur la façon d’appliquer les paramètres XpsSaveOptions et ICreateStreamProvider. Vous pouvez également essayer un convertisseur SVG en ligne pour tester les fonctionnalités de l’API Aspose.HTML et convertir des SVG à la volée.
Convertisseur SVG en ligne
Vous pouvez convertir SVG en d’autres formats avec l’API Aspose.HTML en temps réel. Veuillez charger SVG à partir du système de fichiers local, sélectionnez le format de sortie et exécutez l’exemple. Les options d’enregistrement sont définies par défaut. Vous recevrez immédiatement le résultat de la conversion dans un fichier séparé.
Si vous souhaitez convertir SVG en fichier XPS par programme, veuillez consulter les exemples de code C# suivants.
SVG vers XPS en une seule ligne de code
Les méthodes statiques de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un fichier SVG dans différents formats. Vous pouvez convertir SVG en XPS dans votre application C# en une seule ligne de code !
Dans l’exemple suivant, nous prenons un fichier SVG dans un système de fichiers local ( shapes.svg), le convertissons et l’enregistrons dans le système de fichiers local.
1// Convert SVG to XPS using C#
2
3// Invoke the ConvertSVG() method to convert SVG to XPS
4Converter.ConvertSVG(Path.Combine(DataDir, "shapes.svg"), new XpsSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.xps"));
Convertir SVG en XPS
La conversion d’un fichier vers un autre format à l’aide de la méthode ConvertSVG() est une séquence d’opérations parmi lesquelles le chargement et l’enregistrement de documents. Dans l’exemple suivant, nous créons un fichier SVG à partir du code.
- Préparer le code d’un document SVG.
- Créer un nouvel objet XpsSaveOptions.
- Utilisez la méthode
ConvertSVG(
content
,baseUri
,options
,outputPath
) de la classe Converter pour enregistrer SVG en tant que fichier XPS.
Jetez un coup d’œil à l’extrait de code C# suivant, qui illustre le processus de conversion de SVG en XPS à l’aide d’Aspose.HTML for .NET.
1// Convert SVG to XPS in C#
2
3// Prepare SVG code
4string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
5 "<circle cx ='100' cy ='100' r ='60' fill='none' stroke='red' stroke-width='10' />" +
6 "</svg>";
7
8// Prepare a path for converted file saving
9string savePath = Path.Combine(OutputDir, "circle.xps");
10
11// Initialize XpsSaveOptions
12XpsSaveOptions options = new XpsSaveOptions();
13
14// Convert SVG to XPS
15Converter.ConvertSVG(code, ".", options, savePath);
Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.
Sauvegarder les options
Aspose.HTML permet de convertir SVG en XPS en utilisant des options d’enregistrement par défaut ou personnalisées. l’utilisation de XpsSaveOptions vous permet de personnaliser le processus de rendu ; vous pouvez spécifier la taille de la page, les marges, la couleur d’arrière-plan, etc.
Property | Description |
---|---|
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
Css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
BackgroundColor | This property sets the color that will fill the background of every page. By default, this property is Transparent. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
Convertir SVG en XPS en utilisant XpsSaveOptions
Pour convertir SVG en XPS en spécifiant XpsSaveOptions, vous devez suivre quelques étapes :
- Charger un fichier SVG en utilisant l’un des constructeurs SVGDocument() de la classe SVGDocument. ( aspose.svg).
- Créer un nouvel objet XpsSaveOptions et spécifier les options de sauvegarde.
- Utilisez la méthode ConvertSVG() pour enregistrer SVG en tant que fichier XPS. Vous devez passer les paramètres SVGDocument, XpsSaveOptions et le chemin du fichier de sortie à la méthode ConvertSVG() pour la conversion SVG vers XPS.
L’extrait de code C# suivant montre comment convertir SVG en XPS en utilisant des options d’enregistrement personnalisées :
1// Convert SVG to XPS in C# with custom page settings
2
3// Prepare a path to a source SVG file
4string documentPath = Path.Combine(DataDir, "aspose.svg");
5
6// Prepare a path for converted file saving
7string savePath = Path.Combine(OutputDir, "aspose-options.xps");
8
9// Initialize an SVG document from the file
10using SVGDocument document = new SVGDocument(documentPath);
11
12// Initialize XpsSaveOptions. Set up the page-size 500x500 pixels, margins, resolutions and change the background color to AliceBlue
13XpsSaveOptions options = new XpsSaveOptions()
14{
15 HorizontalResolution = 200,
16 VerticalResolution = 200,
17 BackgroundColor = System.Drawing.Color.AliceBlue
18};
19options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(500, 500), new Margin(30, 10, 10, 10));
20
21// Convert SVG to XPS
22Converter.ConvertSVG(document, options, savePath);
Le constructeur
XpsSaveOptions() initialise une instance de la classe XpsSaveOptions qui est passée à la méthode ConvertSVG(). La méthode ConvertSVG() prend le document
, les options
, le chemin du fichier de sortie savePath
et effectue l’opération de conversion.
Dans l’exemple ci-dessus, nous utilisons :
- propriété
BackgroundColor
qui définit la couleur de l’arrière-plan. La couleur d’arrière-plan par défaut est Transparent. - les propriétés
HorizontalResolution
etVerticalResolution
définissent la résolution horizontale/verticale des images de sortie en pixels par pouce. Par défaut, ces propriétés sont de 300 dpi. - propriété
PageSetup
qui spécifie la page size et les margins.
La classe XpsSaveOptions fournit de nombreuses propriétés qui vous permettent de contrôler un grand nombre de paramètres et d’améliorer le processus de conversion de SVG au format XPS. Pour en savoir plus sur XpsSaveOptions, veuillez lire l’article Convertisseurs à réglage fin.
La figure illustre le fichier aspose-options.xps avec la taille de page, la couleur d’arrière-plan, etc. spécifiées.
Fournisseurs de flux de sortie
S’il est nécessaire d’enregistrer des fichiers dans un espace de stockage distant (par exemple, un nuage, une base de données, etc.), vous pouvez mettre en œuvre l’interface ICreateStreamProvider pour contrôler manuellement le processus de création de fichiers. Cette interface est conçue comme un objet de rappel pour créer un flux au début du document/de la page (en fonction du format de sortie) et libérer le flux créé au début après le rendu du document/de la page.
Aspose.HTML for .NET propose différents types de formats de sortie pour les opérations de rendu. Certains de ces formats produisent un seul fichier de sortie (par exemple, PDF, XPS), d’autres créent plusieurs fichiers (formats d’image – JPG, PNG, etc.)
L’exemple ci-dessous montre comment mettre en œuvre et utiliser votre propre MemoryStreamProvider dans l’application :
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}
1// Convert SVG to XPS in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Prepare SVG code
7string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
8 "<circle cx='50' cy='50' r='40' stroke='black' stroke-width='3' fill='red' />" +
9 "</svg>";
10
11// Convert SVG to XPS using the MemoryStreamProvider
12Converter.ConvertSVG(code, ".", new XpsSaveOptions(), streamProvider);
13
14// Get access to the memory stream that contains the result data
15MemoryStream memory = streamProvider.Streams.First();
16memory.Seek(0, SeekOrigin.Begin);
17
18// Flush the result data to the output file
19using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.xps")))
20{
21 memory.CopyTo(fs);
22}
Vérifiez la qualité de la conversion SVG vers XPS avec notre Convertisseur SVG vers XPS en ligne. Téléchargez, convertissez vos fichiers et obtenez des résultats en quelques secondes. Essayez gratuitement notre convertisseur SVG vers XPS !
Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.