Créer un document en Python avec Aspose.HTML – Créer ou charger du HTML, SVG, MHTML, EPUB

Cet article propose un guide détaillé sur la création d’un document HTML à l’aide d’Aspose.HTML for Python via .NET API. L’API fournit la classe HTMLDocument, qui est la racine de la hiérarchie HTML et qui contient l’ensemble du contenu. Cette classe possède un ensemble de constructeurs qui vous permettent de créer ou de charger des documents HTML de différentes manières. Les documents HTML peuvent être créés à partir de zéro en tant que document vide avec une structure HTML, à partir d’une chaîne, d’un flux de mémoire ou chargés à partir d’un fichier ou d’une URL.

Document HTML

Le HTMLDocument est le point de départ de la bibliothèque Python Aspose.HTML. Vous pouvez charger le document HTML dans le Document Object Model (DOM) en utilisant l’un des constructeurs HTMLDocument() et ensuite lire et modifier par programme l’arbre du document, ajouter et supprimer des nœuds, modifier les propriétés des nœuds dans le document tel qu’il est décrit dans les spécifications officielles.

La classe HTMLDocument fournit une représentation en mémoire d’un HTML DOM qui est entièrement conforme aux spécifications W3C DOM et WHATWG DOM. Si vous êtes familier avec les standards WHATWG DOM, WHATWG HTML et JavaScript, l’utilisation de l’API Aspose.HTML for Python via .NET sera très confortable et facile.

Créer un document HTML vide

L’extrait de code Python suivant montre l’utilisation du constructeur par défaut HTMLDocument() pour créer un document HTML vide et l’enregistrer dans un fichier.

 1# Create an empty HTML document using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Setup an output directory and prepare a path to save the document
 7output_dir = "output"
 8if not os.path.exists(output_dir):
 9    os.makedirs(output_dir)
10save_path = os.path.join(output_dir, "document-empty.html")
11
12# Initialize an empty HTML document
13document = ah.HTMLDocument()
14
15# Work with the document here...
16
17# Save the document to a file
18document.save(save_path)

Après la création, le fichier document-empty.html apparaît avec la structure initiale du document : le document vide comprend des éléments tels que <html> <head> et <body>. Une fois l’objet document créé, il peut être rempli ultérieurement avec des éléments HTML.

Créer un nouveau document HTML

Si vous souhaitez créer un document HTML de manière programmatique à partir de zéro, veuillez utiliser le constructeur sans paramètres comme indiqué dans l’extrait de code suivant :

 1# Create an HTML document using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare the output path to save a document
 7output_dir = "output/"
 8if not os.path.exists(output_dir):
 9    os.makedirs(output_dir)
10document_path = os.path.join(output_dir, "create-new-document.html")
11
12# Initialize an empty HTML document
13with ah.HTMLDocument() as document:
14    # Create a text node and add it to the document
15    text = document.create_text_node("Hello, World!")
16    document.body.append_child(text)
17
18    # Save the document to a file
19    document.save(document_path)

Dans le nouveau document, nous avons créé un nœud de texte, avec la chaîne spécifiée, en utilisant la méthode create_text_node() et nous l’avons ajouté à l’élément <body> en utilisant la méthode append_child().

La manière d’éditer un fichier HTML est décrite en détail dans l’article Éditer un document HTML.

Pour plus de détails sur l’enregistrement des fichiers HTML, voir l’article Enregistrer un document HTML.

Charger du HTML à partir d’un fichier

Si vous souhaitez charger un fichier HTML existant à partir d’un fichier, le travailler et l’enregistrer, l’extrait de code suivant vous sera utile :

 1# Load HTML from a file using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Setup directories and define paths
 7output_dir = "output/"
 8input_dir = "data/"
 9if not os.path.exists(output_dir):
10    os.makedirs(output_dir)
11
12document_path = os.path.join(input_dir, "document.html")
13save_path = os.path.join(output_dir, "document-edited.html")
14
15# Initialize a document from a file
16document = ah.HTMLDocument(document_path)
17
18# Work with the document
19
20# Save the document to a file
21document.save(save_path)

Dans l’exemple ci-dessus, le code Python configure les répertoires et les chemins pour lire un document HTML à partir du répertoire “data” et enregistrer une version modifiée dans le répertoire “output”. Il initialise le document HTML à partir du fichier spécifié, le traite, puis enregistre le document modifié dans le chemin de sortie désigné.

Charger du HTML à partir d’une URL

L’une des fonctionnalités les plus utilisées d’Internet est la possibilité de sélectionner des fichiers et d’interagir avec eux sur l’appareil local de l’utilisateur. Dans l’extrait de code Python suivant, vous verrez comment charger une page web dans le HTMLDocument.

Si vous passez une mauvaise URL qui ne peut pas être atteinte à ce moment précis, la bibliothèque lance une PlatformException avec le code spécialisé NetworkError pour vous informer que la ressource sélectionnée ne peut pas être trouvée.

1# Load HTML from a URL using Python
2
3import aspose.html as ah
4
5# Load a document from the specified web page
6document = ah.HTMLDocument("https://docs.aspose.com/html/files/aspose.html")
7
8# Write the document content to the output stream
9print(document.document_element.outer_html)

Dans l’exemple ci-dessus, nous avons spécifié le fichier document.html à charger à partir de l’URL.

Chargement à partir du code HTML

Si votre code HTML contient des ressources liées (styles, scripts, images, etc.), vous devez passer un paramètre base_uri valide au constructeur du document. Il sera utilisé pour résoudre l’emplacement de la ressource pendant le chargement du document.

Charger du HTML à partir d’une chaîne de caractères

Vous pouvez créer un document à partir du contenu d’une chaîne en utilisant l’un des constructeurs HTMLDocument(). Si vous souhaitez créer un document à partir d’une chaîne de caractères directement dans votre code et l’enregistrer dans un fichier, l’exemple suivant peut vous aider. Nous créons un document HTML qui contient le texte “Hello, World !”

 1# Create HTML from a string using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare HTML code
 7html_code = "<p>Hello, World!</p>"
 8
 9# Setup output directory
10output_dir = "output"
11if not os.path.exists(output_dir):
12    os.makedirs(output_dir)
13
14# Initialize a document from the string variable
15document = ah.HTMLDocument(html_code, ".")
16
17# Save the document to disk
18document.save(os.path.join(output_dir, "create-html-from-string.html"))

Charger du HTML à partir d’un flux

Si vous préparez un code HTML sous forme d’objets io.BytesIO en mémoire, vous n’avez pas besoin de les enregistrer dans le fichier, il vous suffit de passer votre code HTML dans des constructeurs spécialisés. Dans l’exemple suivant, pour créer un document HTML à partir d’un flux, nous utiliserons le constructeur HTMLDocument(content, base_uri) :

 1# Load HTML from a stream using Python
 2
 3import os
 4import io
 5import aspose.html as ah
 6
 7# Prepare an output path for saving the document
 8output_dir = "output"
 9if not os.path.exists(output_dir):
10    os.makedirs(output_dir)
11
12# Use BytesIO instead of StringIO
13content_stream = io.BytesIO(b"<p>Hello, World!</p>")
14base_uri = "."
15# config = Configuration()
16
17# Initialize a document from the content stream
18document = ah.HTMLDocument(content_stream, base_uri)
19
20# Save the document to a disk
21document.save(os.path.join(output_dir, "load-from-stream.html"))

io.BytesIO crée un objet flux qui réside entièrement en mémoire. Ceci est utile pour le stockage temporaire de données sans avoir besoin d’écrire sur le disque.

Document SVG

Scalable Vector Graphics (SVG) fait partie des normes W3C et peut être intégré dans un document HTML ; nous avons implémenté la classe SVGDocument avec une fonctionnalité SVG complète basée sur la spécification officielle SVG2. Cela vous permet de charger, de lire et de manipuler des documents SVG conformément à la norme.

Puisque SVGDocument et HTMLDocument sont tous deux basés sur le même standard WHATWG DOM, les opérations telles que le chargement, la lecture, l’édition, la conversion et la sauvegarde sont similaires pour les deux types de documents. Par conséquent, tous les exemples démontrant la manipulation de HTMLDocument s’appliquent également à SVGDocument.

Vous pouvez créer un document à partir d’une chaîne de caractères en utilisant le constructeur SVGDocument() approprié. Si vous voulez charger un document SVG à partir d’une variable content_stream en mémoire et que vous n’avez pas besoin de le sauvegarder dans un fichier, l’exemple ci-dessous montre comment le faire :

 1# Load SVG from a string using Python
 2
 3import io
 4import aspose.html.dom.svg as ahsvg
 5
 6# Initialize an SVG document from a string object
 7svg_content = "<svg xmlns='http://www.w3.org/2000/svg'><circle cx='50' cy='50' r='40'/></svg>"
 8base_uri = "."
 9content_stream = io.BytesIO(svg_content.encode('utf-8'))
10
11document = ahsvg.SVGDocument(content_stream, base_uri)
12
13# Write the document content to the output stream
14print(document.document_element.outer_html)
15
16# Save the document to a disk
17document.save("load-from-stream.svg")

Dans l’exemple ci-dessus, nous avons créé un document SVG contenant un cercle d’un rayon de 50 pixels. Pour en savoir plus sur l’utilisation des documents SVG, consultez la documentation Aspose.SVG for Python via .NET.

Document MHTML

MHTML est un format d’archivage de pages web. Il regroupe dans un seul fichier le contenu HTML d’une page web ainsi que toutes les ressources associées, telles que les feuilles de style CSS, le JavaScript, les images et les fichiers audio. Le MHTML est couramment utilisé par les développeurs web pour enregistrer un instantané d’une page web à des fins d’archivage. La bibliothèque Aspose.HTML Python ne prend en charge que le rendu/la conversion des fichiers MHTML dans différents formats de sortie. Pour plus d’informations, reportez-vous à l’article Conversion entre formats.

Document EPUB

EPUB est un format largement pris en charge pour les livres électroniques et les publications électroniques, compatible avec la plupart des appareils de lecture, y compris les smartphones, les tablettes et les ordinateurs. Comme MHTML, Aspose.HTML ne prend en charge que le rendu des fichiers EPUB dans différents formats de sortie. Pour plus de détails, voir l’article Conversion entre formats.

Téléchargez la bibliothèque Aspose.HTML for Python via .NET pour manipuler avec succès, rapidement et facilement vos documents HTML. La bibliothèque Python peut créer, modifier, extraire des données, convertir et rendre des documents HTML sans nécessiter de logiciel externe. Elle prend en charge les formats de fichiers les plus courants tels que EPUB, MHTML, XML, SVG et Markdown et peut convertir les documents en formats PDF, DOCX, XPS et Image.

Aspose.HTML propose un Convertisseur HTML en ligne gratuit pour convertir des documents HTML dans une variété de formats populaires. Il suffit de charger du HTML à partir d’un fichier ou d’une URL, de choisir le format à convertir et le tour est joué. C’est rapide et entièrement gratuit !

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.