Convertir SVG en PDF en Python

Quick Answer: Utilisez SVGDocument pour charger SVG, créez PdfSaveOptions et appelez Converter.convert_svg(document, options, output_path) pour enregistrer SVG en PDF. PdfSaveOptions permet de régler taille de page, fond, résolution, qualité JPEG, métadonnées ou chiffrement.

Convertir SVG en PDF par programmation

PDF est un format courant lorsque des graphiques SVG doivent être imprimés, archivés, intégrés à des documents ou partagés avec une mise en page stable. Aspose.SVG for Python via .NET permet de convertir SVG en PDF avec une API de conversion de haut niveau ou avec un périphérique de rendu.

Utilisez Converter.convert_svg() pour la plupart des conversions. Utilisez SVGDocument.render_to() avec PdfDevice si votre flux utilise déjà des périphériques de rendu.

Avant d’exécuter les exemples, installez Aspose.SVG for Python via .NET dans votre environnement Python.

Convertir SVG en PDF avec Converter.convert_svg()

Le plus simple consiste à charger le SVG avec SVGDocument, créer PdfSaveOptions et appeler Converter.convert_svg().

1from aspose.svg import SVGDocument
2from aspose.svg.converters import Converter
3from aspose.svg.saving import PdfSaveOptions
4
5# Convert an SVG file to PDF using the default save options
6options = PdfSaveOptions()
7
8with SVGDocument("document.svg") as document:
9    Converter.convert_svg(document, options, "document.pdf")

Convertir SVG en PDF avec des options personnalisées

Utilisez PdfSaveOptions pour contrôler la sortie PDF. L’exemple définit un fond transparent, ajuste la page au contenu SVG, modifie la résolution des images raster et règle la qualité JPEG.

 1import os
 2from aspose.svg import SVGDocument
 3from aspose.svg.converters import Converter
 4from aspose.svg.drawing import Resolution
 5from aspose.svg.rendering import SizingType
 6from aspose.svg.saving import PdfSaveOptions
 7from aspose.pydrawing import Color
 8
 9# Convert SVG to PDF and customize page sizing and image quality
10input_folder = "data/"
11output_folder = "output/"
12input_path = os.path.join(input_folder, "document.svg")
13output_path = os.path.join(output_folder, "document.pdf")
14os.makedirs(output_folder, exist_ok=True)
15
16options = PdfSaveOptions()
17options.background_color = Color.from_argb(0, 255, 255, 255)
18options.page_setup.sizing = SizingType.FIT_CONTENT
19options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
20options.vertical_resolution = Resolution.from_dots_per_inch(96.0)
21options.jpeg_quality = 80
22
23with SVGDocument(input_path) as document:
24    Converter.convert_svg(document, options, output_path)

Propriétés courantes de PdfSaveOptions

PropriétéRôle
background_colorFond de page si le SVG contient de la transparence
page_setupTaille de page, marges et mode de dimensionnement
horizontal_resolutionRésolution horizontale des ressources raster dans le PDF
vertical_resolutionRésolution verticale des ressources raster dans le PDF
jpeg_qualityQualité JPEG des images raster intégrées
document_infoMétadonnées PDF comme titre, auteur, sujet et mots-clés
encryptionChiffrement PDF et permissions

PdfSaveOptions hérite des paramètres de rendu PDF de PdfRenderingOptions, donc de nombreuses propriétés sont partagées entre les flux converter et device.

Convertir SVG en PDF avec render_to()

La méthode render_to() envoie le document SVG chargé vers un périphérique de rendu. Ce modèle est utile si l’application travaille déjà avec des périphériques Aspose.SVG.

 1import os
 2from aspose.svg import SVGDocument
 3from aspose.svg.rendering import SizingType
 4from aspose.svg.rendering.pdf import PdfDevice, PdfRenderingOptions
 5
 6# Render SVG to PDF through a PdfDevice
 7input_folder = "data/"
 8output_folder = "output/"
 9input_path = os.path.join(input_folder, "document.svg")
10output_path = os.path.join(output_folder, "document.pdf")
11os.makedirs(output_folder, exist_ok=True)
12
13options = PdfRenderingOptions()
14options.jpeg_quality = 80
15options.page_setup.sizing = SizingType.FIT_CONTENT
16
17with SVGDocument(input_path) as document:
18    with PdfDevice(options, output_path) as device:
19        document.render_to(device)

Converter.convert_svg() ou render_to()

MéthodeIdéal pour
Converter.convert_svg()Conversion SVG vers PDF directe avec peu de code et des options d’enregistrement
SVGDocument.render_to()Flux de rendu utilisant des périphériques de sortie comme PdfDevice

Pour une conversion SVG vers PDF ordinaire, commencez par Converter.convert_svg(). Utilisez render_to() lorsque vous avez besoin du modèle à périphérique de rendu.

Erreurs courantes et solutions

ProblèmeCause probableSolution
La taille de page PDF est inattendueLa configuration par défaut ne correspond pas au viewport ou au contenu SVGDéfinissez options.page_setup.sizing et configurez taille ou marges
Les zones transparentes ont un fond non souhaitéLe lecteur PDF ou le flux de sortie applique son propre fondDéfinissez options.background_color avant conversion
Les images intégrées sont floues ou volumineusesRésolution et qualité JPEG ne conviennent pas à la cibleAjustez horizontal_resolution, vertical_resolution et jpeg_quality
Le PDF n’est pas crééLe dossier cible n’existe pas ou le script enregistre ailleursCréez le dossier avec os.makedirs() et utilisez os.path.join()
Texte ou ressources externes manquentSVG référence des polices, images ou CSS non résolusUtilisez des chemins corrects et gardez les ressources près du SVG

Convertisseur SVG en PDF en ligne

Vous pouvez tester la conversion avec le SVG to PDF Converter gratuit. Téléversez un SVG, lancez la conversion et comparez le résultat avant de l’implémenter en Python.

                
            

Convertisseur SVG en PDF en ligne

FAQ

Comment convertir SVG en PDF en Python ?

Chargez SVG avec SVGDocument, créez PdfSaveOptions et appelez Converter.convert_svg(document, options, output_path).

Puis-je définir la taille de page PDF pendant la conversion ?

Oui. Utilisez page_setup dans PdfSaveOptions ou PdfRenderingOptions pour configurer taille, marges et mode de dimensionnement.

Puis-je convertir SVG en PDF sans la classe Converter ?

Oui. Créez PdfRenderingOptions, ouvrez un PdfDevice et appelez document.render_to(device).

La conversion SVG vers PDF conserve-t-elle la transparence ?

Le contenu transparent peut être conservé, mais le résultat visible dépend du lecteur PDF et du flux. Définissez background_color pour un fond prévisible.

Comment réduire la taille du PDF généré ?

Réduisez jpeg_quality, diminuez la résolution des images raster intégrées et simplifiez les SVG volumineux ou complexes.

Articles associés