Exportation de présentations en HTML avec des images liées à l'extérieur en Python
Le processus d’exportation de la présentation vers HTML vous permet de spécifier :
- les ressources qui sont incorporées dans le fichier HTML résultant, et
- les ressources qui sont enregistrées à l’extérieur et référencées depuis le fichier HTML.
Contexte
Par défaut, l’exportation HTML incorpore toutes les ressources directement dans le HTML en utilisant l’encodage Base64. Cela produit un fichier HTML unique et autonome, pratique pour la visualisation et la distribution. Cependant, cette approche présente des inconvénients :
- Le fichier résultant est nettement plus volumineux que les ressources d’origine en raison de la surcharge du Base64.
- Les images incorporées et les autres ressources sont difficiles à mettre à jour ou à remplacer.
Approche alternative
Une approche alternative utilisant ILinkEmbedController évite ces limitations.
La classe LinkController ci‑dessous implémente ILinkEmbedController et est transmise au constructeur de HtmlOptions. La classe expose trois méthodes qui contrôlent la manière dont les ressources sont incorporées ou liées pendant l’exportation HTML :
get_object_storing_location(id, entity_data, semantic_name, content_type, recommended_extension): Appelé lorsque l’exportateur rencontre une ressource et doit décider où la stocker. Les paramètres les plus importants sont id (l’identifiant unique de la ressource pour cette exécution d’exportation) et content_type (le type MIME de la ressource). Retournez LinkEmbedDecision.LINK pour lier la ressource, ou LinkEmbedDecision.EMBED pour l’incorporer.
get_url(id, referrer): Retourne l’URL qui apparaîtra dans le HTML résultant pour la ressource identifiée par id (en tenant éventuellement compte de l’objet référent).
save_external(id, entity_data): Appelé lorsqu’une ressource sélectionnée pour le lien doit être enregistrée à l’extérieur. Étant donné que l’identifiant et le contenu sont fournis (sous forme de tableau d’octets), vous pouvez persister la ressource comme vous le souhaitez.
L’implémentation Python de LinkController de ILinkEmbedController suit ci‑dessous.
# [TODO[not_supported_yet]: implémentation python des interfaces .NET]
Après avoir implémenté la classe LinkController, vous pouvez l’utiliser avec la classe HtmlOptions pour exporter la présentation en HTML avec des images liées à l’extérieur, comme indiqué ci‑dessous :
# [TODO[not_supported_yet]: implémentation python des interfaces .NET]
Nous avons assigné SlideImageFormat.SVG à la propriété slide_image_format afin que le fichier HTML résultant contienne des données SVG pour rendre le contenu de la présentation.
Types de contenu : Si la présentation contient des images matricielles, le code de la classe doit être prêt à gérer à la fois les types de contenu image/jpeg et image/png. Le contenu des images bitmap exportées peut ne pas correspondre à ce qui était stocké dans la présentation. Les algorithmes internes d’Aspose.Slides effectuent une optimisation de taille et utilisent le codec JPEG ou PNG (selon celui qui produit un fichier plus petit). Les images contenant un canal alpha (transparence) sont toujours encodées en PNG.