Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Quick Answer: Pour convertir des fichiers SVG par lots en Python, parcourez un dossier d’entrée, chargez chaque fichier .svg avec
SVGDocument, créez les options du format cible et appelez
Converter.convert_svg() pour chaque fichier de sortie.
La conversion par lots est utile quand une application doit produire des vignettes, des aperçus web, des images de rapport exportées ou des copies PDF pour un dossier de fichiers SVG. Le flux est le même que pour un seul fichier, mais il est répété pour chaque source :
.svg.Avant d’exécuter les exemples, installez Aspose.SVG for Python via .NET dans votre environnement Python.
PNG est un bon choix par défaut pour les aperçus web et les sorties raster transparentes. L’exemple suivant convertit chaque fichier .svg du dossier data/svg/ en fichier .png dans output/png/.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.saving import ImageSaveOptions
5
6# Batch convert SVG files to PNG
7input_folder = "data/svg/"
8output_folder = "output/png/"
9os.makedirs(output_folder, exist_ok=True)
10
11options = ImageSaveOptions()
12
13for file_name in os.listdir(input_folder):
14 if not file_name.lower().endswith(".svg"):
15 continue
16
17 input_path = os.path.join(input_folder, file_name)
18 output_name = os.path.splitext(file_name)[0] + ".png"
19 output_path = os.path.join(output_folder, output_name)
20
21 with SVGDocument(input_path) as document:
22 Converter.convert_svg(document, options, output_path)Lors de la conversion en JPG, définissez ImageFormat.JPEG et choisissez une couleur de fond, car JPG ne prend pas en charge la transparence.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.rendering.image import ImageFormat
5from aspose.svg.saving import ImageSaveOptions
6from aspose.pydrawing import Color
7
8# Batch convert SVG files to JPG with a solid background
9input_folder = "data/svg/"
10output_folder = "output/jpg/"
11os.makedirs(output_folder, exist_ok=True)
12
13options = ImageSaveOptions()
14options.format = ImageFormat.JPEG
15options.background_color = Color.from_argb(255, 255, 255)
16
17for file_name in os.listdir(input_folder):
18 if not file_name.lower().endswith(".svg"):
19 continue
20
21 input_path = os.path.join(input_folder, file_name)
22 output_name = os.path.splitext(file_name)[0] + ".jpg"
23 output_path = os.path.join(output_folder, output_name)
24
25 with SVGDocument(input_path) as document:
26 Converter.convert_svg(document, options, output_path)Utilisez PdfSaveOptions lorsque chaque fichier SVG doit devenir un fichier PDF séparé.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.saving import PdfSaveOptions
5
6# Batch convert SVG files to separate PDF files
7input_folder = "data/svg/"
8output_folder = "output/pdf/"
9os.makedirs(output_folder, exist_ok=True)
10
11options = PdfSaveOptions()
12
13for file_name in os.listdir(input_folder):
14 if not file_name.lower().endswith(".svg"):
15 continue
16
17 input_path = os.path.join(input_folder, file_name)
18 output_name = os.path.splitext(file_name)[0] + ".pdf"
19 output_path = os.path.join(output_folder, output_name)
20
21 with SVGDocument(input_path) as document:
22 Converter.convert_svg(document, options, output_path)Les exemples précédents répètent la même boucle de dossiers pour PNG, JPG et PDF. Dans le code d’une application, il est généralement plus clair de garder cette boucle dans une fonction auxiliaire et de passer seulement les éléments qui changent : le dossier de sortie, l’extension de sortie et les options d’enregistrement.
Utilisez ce modèle lorsque votre projet prend en charge plusieurs formats d’export et que vous ne voulez pas maintenir trois boucles séparées. La fonction ci-dessous crée toujours un fichier de sortie par SVG ; elle supprime seulement le code répété.
1import os
2from aspose.svg import SVGDocument
3from aspose.svg.converters import Converter
4from aspose.svg.rendering.image import ImageFormat
5from aspose.svg.saving import ImageSaveOptions, PdfSaveOptions
6from aspose.pydrawing import Color
7
8def batch_convert_svg(input_folder, output_folder, output_extension, options):
9 os.makedirs(output_folder, exist_ok=True)
10
11 for file_name in os.listdir(input_folder):
12 if not file_name.lower().endswith(".svg"):
13 continue
14
15 input_path = os.path.join(input_folder, file_name)
16 output_name = os.path.splitext(file_name)[0] + output_extension
17 output_path = os.path.join(output_folder, output_name)
18
19 with SVGDocument(input_path) as document:
20 Converter.convert_svg(document, options, output_path)
21
22input_folder = "data/svg/"
23
24# Reuse the same helper for PNG output
25png_options = ImageSaveOptions()
26batch_convert_svg(input_folder, "output/png/", ".png", png_options)
27
28# Reuse the same helper for JPG output
29jpg_options = ImageSaveOptions()
30jpg_options.format = ImageFormat.JPEG
31jpg_options.background_color = Color.from_argb(255, 255, 255)
32batch_convert_svg(input_folder, "output/jpg/", ".jpg", jpg_options)
33
34# Reuse the same helper for PDF output
35pdf_options = PdfSaveOptions()
36batch_convert_svg(input_folder, "output/pdf/", ".pdf", pdf_options)| Problème | Cause probable | Solution |
|---|---|---|
| Aucun fichier n’est converti | Le script utilise le mauvais dossier d’entrée ou filtre la mauvaise extension | Affichez input_folder et vérifiez qu’il contient des fichiers .svg |
| Les fichiers de sortie s’écrasent | Plusieurs fichiers d’entrée produisent le même nom de base | Conservez les sous-dossiers ou ajoutez un suffixe aux noms générés |
| Images liées ou CSS manquent | Les ressources relatives ne sont pas disponibles à côté du SVG source | Chargez chaque SVG depuis son chemin d’origine et gardez les ressources aux emplacements relatifs attendus |
| Le JPG a un fond inattendu | JPG ne prend pas en charge la transparence | Définissez ImageSaveOptions.background_color |
| Un SVG incorrect arrête tout le lot | Les exceptions ne sont pas gérées fichier par fichier | Encapsulez chaque conversion dans try/except et journalisez les fichiers en échec |
Parcourez un dossier d’entrée, chargez chaque fichier .svg avec SVGDocument et appelez Converter.convert_svg() avec les options d’enregistrement nécessaires.
Oui. Utilisez ImageSaveOptions, définissez options.format = ImageFormat.JPEG, choisissez une couleur de fond et enregistrez chaque fichier de sortie avec l’extension .jpg.
Oui. Utilisez PdfSaveOptions et écrivez chaque document converti dans un chemin de sortie .pdf.
Oui. Utilisez un parcours récursif des dossiers dans votre code Python et créez les dossiers de sortie correspondants avant l’enregistrement.
Ce flux par lots crée un fichier de sortie par SVG. Si vous avez besoin d’un PDF multi-page combiné, utilisez la classe SvgRenderer avec un périphérique de sortie PdfDevice ; le renderer peut envoyer plusieurs documents SVG vers le même périphérique PDF.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.