Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Le paramètre de configuration de l’environnement est utilisé à diverses fins. Par exemple, lorsque vous développez une application, vous exigerez certainement une configuration pouvant aller du service d’exécution ou gérer toutes les requêtes Web de l’application à l’injection de thèmes personnalisés.
Dans ce guide, vous apprendrez à créer diverses configurations et à les adapter aux différents environnements dans lesquels l’application s’exécute. Il peut s’agir d’un thème personnalisé, d’un service d’exécution ou d’un service réseau de requête Web.
L’espace de noms Aspose.Svg.Services contient un ensemble d’interfaces pour les implémentations de services séparés. Cet article considère différents types de services de configuration d’environnement, tels que le Service d’agent utilisateur, le Service d’exécution et le Service réseau. Aspose.SVG for .NET fournit la classe Configuration qui peut être utilisée pour définir l’environnement dans lequel l’application est exécutée.
Vous pouvez télécharger les exemples complets et les fichiers de données depuis GitHub. Vous découvrirez le téléchargement depuis GitHub et l’exécution d’exemples dans la section Comment exécuter les exemples.
Le User Agent Service vous permet de spécifier une feuille de style utilisateur personnalisée, un jeu de caractères principal pour les paramètres du document, de la langue et des polices. Vous pouvez sélectionner vos informations de style personnalisé pour un document particulier et fournir autant de modifications de configuration d’environnement que nécessaire.
L’interface IUserAgentService décrit un environnement d’agent utilisateur.
La propriété UserStyleSheet de l’interface IUserAgentService permet de spécifier des informations de style pour un document particulier ;
La propriété CharSet définit le jeu de caractères principal d’un document.
Pour analyser et afficher correctement un document SVG, l’application doit savoir quel encodage est utilisé. Si le codage des caractères n’est pas directement spécifié dans l’en-tête du document, Aspose.SVG utilise UTF-8, qui est défini par défaut. Cependant, si vous êtes sûr que votre document SVG est écrit avec un encodage différent de celui UTF-8, vous pouvez le spécifier manuellement, comme indiqué dans l’exemple ci-dessus.
La propriété FontsSettings est utilisée pour la configuration de la gestion des polices. Lorsque vous devez utiliser les polices personnalisées au lieu des polices installées sur le système d’exploitation, vous pouvez définir le chemin d’accès à votre dossier personnalisé, comme indiqué dans l’extrait de code suivant.
La propriété CSSEngineMode obtient ou définit le mode dans lequel fonctionne le moteur CSS.
La propriété Language spécifie la langue principale du contenu de l’élément et de tout attribut de l’élément contenant du texte.
Prenons un exemple qui illustre l’application des propriétés UserStyleSheet, CharSet et FontsSettings :
1using System.IO;
2using Aspose.Svg;
3using Aspose.Svg.Services;
4using Aspose.Svg.Converters;
5using Aspose.Svg.Saving; 1// Set custom user agent, styles, charset, and fonts for SVG conversion to PDF in C#
2
3// Prepare SVG code and save it to a file
4string code = "<svg xmlns=\"http://www.w3.org/2000/svg\">\r\n" +
5 " <circle cx=\"40\" cy=\"80\" r=\"30\" />\r\n" +
6 " <text x=\"80\" y=\"100\">Aspose.SVG</text>\r\n" +
7 "</svg>\r\n";
8
9File.WriteAllText(Path.Combine(OutputDir, "user-agent.svg"), code);
10
11// Create an instance of the Configuration class
12using (Configuration configuration = new Configuration())
13{
14 // Get the IUserAgentService
15 IUserAgentService userAgentService = configuration.GetService<IUserAgentService>();
16
17 // Set a custom style parameters for <circle> and <text> elements
18 userAgentService.UserStyleSheet = "circle { fill:silver; }\r\n" +
19 "text { fill:DarkCyan; font-size:3em; }\r\n";
20
21 // Set ISO-8859-1 encoding to parse a document
22 userAgentService.CharSet = "ISO-8859-1";
23
24 // Set a custom font folder path
25 userAgentService.FontsSettings.SetFontsLookupFolder(Path.Combine(DataDir + "fonts"));
26
27 // Initialize an SVG document with specified configuration
28 using (SVGDocument document = new SVGDocument(Path.Combine(OutputDir, "user-agent.svg"), configuration))
29 {
30 // Convert SVG to PDF
31 Converter.ConvertSVG(document, new PdfSaveOptions(), Path.Combine(OutputDir, "user-agent.pdf"));
32 }
33}La figure illustre le résultat de l’application du User Agent Service (b) au fichier source user-agent.svg (a).

Lorsque vous prévoyez d’exécuter votre application, vous aurez peut-être besoin d’une configuration de service d’exécution. Ce service vous permet de contrôler la durée de vie des processus internes. Par exemple, en utilisant IRuntimeService, vous pouvez spécifier des délais d’attente pour les JavaScript. Il est important d’avoir un tel délai d’attente au cas où un script contiendrait une boucle sans fin. L’extrait de code suivant montre comment utiliser les délais d’attente.
1using System.IO;
2using Aspose.Svg;
3using Aspose.Svg.Services;
4using Aspose.Svg.Converters;
5using Aspose.Svg.Saving; 1// Limit JavaScript execution time in SVG before conversion to PNG in C#
2
3// Prepare SVG code and save it to a file
4string code = "<svg xmlns=\"http://www.w3.org/2000/svg\">\r\n" +
5 " <script> while(true) {} </script>\r\n" +
6 " <circle cx=\"40\" cy=\"80\" r=\"30\" />\r\n" +
7 "</svg>\r\n";
8
9File.WriteAllText(Path.Combine(OutputDir, "runtime.svg"), code);
10
11// Create an instance of the Configuration class
12using (Configuration configuration = new Configuration())
13{
14 // Limit JS execution time to 5 seconds
15 IRuntimeService runtimeService = configuration.GetService<IRuntimeService>();
16 runtimeService.JavaScriptTimeout = TimeSpan.FromSeconds(5);
17
18 // Initialize an SVG document with specified configuration
19 using (SVGDocument document = new SVGDocument(Path.Combine(OutputDir, "runtime.svg"), configuration))
20 {
21 // Convert SVG to PNG
22 Converter.ConvertSVG(document, new ImageSaveOptions(), Path.Combine(OutputDir, "runtime.png"));
23 }
24}La propriété JavaScriptTimeout définit TimeSpan, qui limite le temps d’exécution de JavaScript. Si le script est exécuté plus longtemps que le TimeSpan fourni, il sera annulé. La valeur par défaut est 1 minute.
Les environnements réseau modernes génèrent une quantité importante d’événements de sécurité et enregistrent des données via des routeurs et commutateurs réseau, des serveurs, des systèmes anti-malware, etc.
Aspose.SVG for .NET propose le INetworkService qui est envisagé comme une solution pour aider à gérer et analyser toutes ces informations. Le service vous permet de contrôler tout le trafic entrant/sortant et de mettre en œuvre vos gestionnaires de messages personnalisés. Il peut être utilisé à différentes fins, telles que la création d’un mécanisme de mise en cache personnalisé, le traçage/journalisation des messages de demande, etc.
Aspose.SVG for .NET offre des fonctionnalités pour la création de gestionnaires de messages personnalisés. Développons un gestionnaire personnalisé simple qui enregistre les informations sur les ressources inaccessibles. Suivez les étapes suivantes :
L’exemple suivant montre comment créer LogMessageHandler pour enregistrer des informations sur les ressources inaccessibles.
1using Aspose.Svg.Net;
2using System.Collections.Generic;
3using System.Net; 1// Сustom network message handler to log HTTP errors during SVG processing
2
3// Define LogMessageHandler that is derived from the MessageHandler class
4public class LogMessageHandler : MessageHandler
5{
6 private List<string> errors = new List<string>();
7
8 public List<string> ErrorMessages
9 {
10 get { return errors; }
11 }
12
13 // Override the Invoke() method
14 public override void Invoke(INetworkOperationContext context)
15 {
16 // Check whether response is OK
17 if (context.Response.StatusCode != HttpStatusCode.OK)
18 {
19 // Set error information
20 errors.Add(string.Format("File '{0}' Not Found", context.Request.RequestUri));
21 }
22
23 // Invoke the next message handler in the chain
24 Next(context);
25 }
26}Pour plus d’informations sur la création de gestionnaires de messages personnalisés, veuillez consulter le chapitre Message Handlers.
L’exemple suivant montre comment utiliser la classe LogMessageHandler pour consigner des informations sur les ressources inaccessibles.
1using System.IO;
2using Aspose.Svg;
3using Aspose.Svg.Services;
4using Aspose.Svg.Converters;
5using Aspose.Svg.Saving;
6using Aspose.Svg.Net; 1// Log network errors when loading external images in SVG and convert to PNG
2
3// Prepare SVG code and save it to a file
4string code = "<svg xmlns=\"http://www.w3.org/2000/svg\">\r\n" +
5 " <image href=\"https://docs.aspose.com/svg/images/drawing/park.jpg\" width=\"640px\" height=\"480px\" />\r\n" +
6 " <image href=\"https://docs.aspose.com/svg/net/missing1.svg\" width=\"400px\" height=\"300px\" />\r\n" +
7 " <image href=\"https://docs.aspose.com/svg/net/missing2.svg\" width=\"400px\" height=\"300px\" />\r\n" +
8 "</svg>\r\n";
9
10File.WriteAllText(Path.Combine(OutputDir, "network.svg"), code);
11
12// Create an instance of the Configuration class
13using (Configuration configuration = new Configuration())
14{
15 // Add LogMessageHandler to the chain of existing message handlers
16 INetworkService networkService = configuration.GetService<INetworkService>();
17
18 LogMessageHandler logHandler = new LogMessageHandler();
19 networkService.MessageHandlers.Add(logHandler);
20
21 // Initialize an SVG document with specified configuration
22 using (SVGDocument document = new SVGDocument(Path.Combine(OutputDir, "network.svg"), configuration))
23 {
24 // Convert SVG to PNG
25 Converter.ConvertSVG(document, new ImageSaveOptions(), Path.Combine(OutputDir, "network.png"));
26
27 // Print the List of ErrorMessages
28 foreach (string errorMessage in logHandler.ErrorMessages)
29 {
30 Console.WriteLine(errorMessage);
31 }
32 }
33}Après l’exécution de l’exemple:
ErrorMessages sera imprimée :File 'https://docs.aspose.com/svg/net/missing1.svg' Not FoundFile 'https://docs.aspose.com/svg/net/missing2.svg' Not Found
Vous pouvez télécharger les exemples complets et les fichiers de données depuis GitHub. À propos du téléchargement depuis GitHub et de l’exécution d’exemples, vous le découvrirez dans la section Comment exécuter les exemples.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.