Je travaille sur un générateur d'autocollants, en utilisant iText7 C #. Le look de l'autocollant final doit ressembler à ceci: https://drive.google.com/open?id=16q_sMP5H0eiVhq85DDR3GE >
J'ai un problème avec l'ajout d'un graphique SVG au document PDF. J'ai des graphiques dans le lien ci-dessus:
https://drive.google.com/open?id=1bw2E5hVhKajbY
https://drive.google.com/open?id=1lEqhrh2zAlOGTlA1WM p >
Je ne trouve aucun exemple pratique sur Internet comment lire un fichier SVG et l'ajouter à un document pdf en utilisant iText7. Quelqu'un peut-il m'aider sur ce sujet?
3 Réponses :
En utilisant la dernière version 7.1.4, vous ajouteriez un SVG à un document comme celui-ci:
public static void Convert(Stream svg, Stream pdfOutputStream) { SvgConverter.CreatePdf(svg, pdfOutputStream); }
Il existe de nombreuses autres possibilités dans cette classe pour convertir en PDF, mais c'est le méthode la plus simple à utiliser.
J'utilise ce code pour ajouter un graphique SVG au document pdf:
string enc_text = File.ReadAllText(SVG);
SvgConverter.DrawOnCanvas (enc_text, pdfCanvas);
mais cela ne fonctionne que pour les graphiques SVG simples comme ci-dessous https://www.w3schools.com/graphics/tryit.asp?filename= trysvg_ellipse3
ne fonctionne pas pour ce SVG créé et enregistré dans CorelDraw: https://drive.google.com/file/d/1bw2E5hVhKjbmw > est-ce possible de dessiner ce graphique sur pdf en utilisant itext7 C #?
Sans essayer de convertir celui-là: il semble qu'il devrait être supporté cependant ... Quelle version utilisez-vous? Avez-vous mis à niveau vers la dernière version? Lève-t-il une exception ou enregistre-t-il un avertissement?
Merci pour votre réponse. J'utilise la dernière version 7.1.4. je Texte. Il n'y a pas d'exceptions et d'avertissements
Voici le code:
string enc_text = File.ReadAllText(SVG); SvgConverter.DrawOnCanvas(enc_text, pdfCanvas);
....
public const String SVG = @"C:\Users\Desktop\logo.svg";
J'ai essayé trois fois et voici les résultats:
Tentative 1 SVG https://drive.google.com/open?id=1ibg_KwvviRQ4b9suniZdB PDF - le résultat est: OK: https://drive.google.com/open?id=1DGGLUowlEYpAVydbWT >
Tentative 2 SVG: https://drive.google.com/open?id=1UHASgAxAaPONIo9fc6VZ9q4cjjK-uOzj" rel="nofollow noreferrer"> https://drive.google.com/open?id=1UHASgAxAxAaPONIo9-fc9-fc6jf > PDF - le résultat est: à moitié bien https://drive.google.com/open?idEX=1yzLF-fQQcOQvYVy UuK0YVeHOn5B_
Tentative 3
SVG
https://drive.google.com/open?id=1ZNLDkc2xDEWvHouKpAgA
PDF - le résultat est: pas de logo
https://drive.google.com/open?id=1nJVNT5oAMoQI8HuUB p7huIb > Les graphiques SVG sont bien affichés dans les navigateurs, mais iText ne peut pas les dessiner correctement, en particulier ceux compliqués
SVG est XML. Les images seraient des chaînes de base 64 bits. Vous devez donc analyser le xml et convertir la chaîne de base 64 en octet [], puis en images bit. Les images peuvent également être des liens URL et vous devrez peut-être obtenir les images à partir des liens.