Convertir HTML en DOCX en C#
Un fichier DOCX est un document Microsoft Word qui contient généralement du texte, mais qui peut contenir un large éventail de données, y compris des tableaux, des graphiques matriciels et vectoriels, des vidéos, des sons et des diagrammes. Le fichier DOCX est hautement modifiable, facile à utiliser et de taille raisonnable. Ce format est populaire en raison de la variété des options qu’il offre aux utilisateurs pour rédiger n’importe quel type de document. Ce format de fichier est l’un des plus utilisés et est disponible dans de nombreux programmes.
L’utilisation des méthodes Converter.ConvertHTML est la manière la plus courante de convertir du code HTML dans différents formats. Avec Aspose.HTML for .NET, vous pouvez convertir HTML au format DOCX de manière programmatique en contrôlant totalement un large éventail de paramètres de conversion. Dans cet article, vous trouverez des informations sur la manière de convertir HTML en DOCX à l’aide des méthodes ConvertHTML() de la classe Converter, et sur la manière d’appliquer les paramètres DocSaveOptions et ICreateStreamProvider.
Convertisseur HTML en ligne
Vous pouvez vérifier la fonctionnalité de l’API Aspose.HTML for .NET et convertir du HTML en temps réel. Veuillez charger HTML à partir du système de fichiers local, sélectionnez le format de sortie et exécutez l’exemple. Dans l’exemple, les options d’enregistrement sont définies par défaut. Vous recevrez immédiatement le résultat dans un fichier séparé.
Si vous souhaitez convertir HTML en DOCX par programme, veuillez consulter les exemples de code C# suivants.
HTML à DOCX par une seule ligne de code
Les méthodes statiques de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un code HTML dans différents formats. Vous pouvez convertir HTML en DOCX dans votre application C# en une seule ligne de code !
1// Convert HTML to DOCX in C#
2
3// Invoke the ConvertHTML() method to convert HTML to DOCX
4Converter.ConvertHTML(@"<h1>Convert HTML to DOCX!</h1>", ".", new DocSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.docx"));
Convertir HTML en DOCX
La conversion d’un fichier dans un autre format à l’aide de la méthode ConvertHTML() est une séquence d’opérations parmi lesquelles le chargement et l’enregistrement de documents :
- Charge un fichier HTML à l’aide de la classe HTMLDocument.
- Créer un nouvel objet DocSaveOptions.
- Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer HTML en tant que fichier DOCX. Vous devez transmettre les paramètres HTMLDocument, DocSaveOptions et le chemin du fichier de sortie à la méthode ConvertHTML() pour convertir HTML en DOCX.
Jetez un coup d’œil à l’extrait de code C# suivant, qui illustre le processus de conversion de HTML en DOCX à l’aide d’Aspose.HTML for .NET.
1// Convert HTML to DOCX using C#
2
3// Prepare a path to a source HTML file
4string documentPath = Path.Combine(DataDir, "canvas.html");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "canvas-output.docx");
8
9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize DocSaveOptions
13DocSaveOptions options = new DocSaveOptions();
14
15// Convert HTML to DOCX
16Converter.ConvertHTML(document, options, savePath);
Sauvegarder les options
Aspose.HTML permet de convertir HTML en DOCX en utilisant des options d’enregistrement par défaut ou personnalisées. l’utilisation de DocSaveOptions vous permet de personnaliser le processus de rendu ; vous pouvez spécifier la taille de la page, les marges, les résolutions, les CSS, etc.
Property | Description |
---|---|
FontEmbeddingRule | This property gets or sets the font embedding rule. Available values are Full and None. The default value is None. |
Css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
DocumentFormat | This property gets or sets the file format of the output document. The default value is DOCX. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
Pour en savoir plus sur DocSaveOptions, veuillez lire l’article Convertisseurs à réglage fin.
Convertissez du HTML en DOCX avec DocSaveOptions
Pour convertir HTML en DOCX en spécifiant DocSaveOptions, vous devez suivre quelques étapes :
- Charger un fichier HTML en utilisant l’un des constructeurs HTMLDocument() de la classe HTMLDocument.
- Créer un nouvel objet DocSaveOptions.
- Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer HTML en tant que fichier DOCX. Vous devez transmettre les paramètres HTMLDocument, DocSaveOptions et le chemin du fichier de sortie à la méthode ConvertHTML() pour convertir HTML en DOCX.
L’exemple suivant montre comment utiliser DocSaveOptions et créer un fichier DOCX avec des options d’enregistrement personnalisées :
1// Convert HTML to DOCX in C# with custom settings
2
3string documentPath = Path.Combine(OutputDir, "save-options.html");
4string savePath = Path.Combine(OutputDir, "save-options-output.docx");
5
6// Prepare HTML code and save it to a file
7string code = "<h1>DocSaveOptions Class</h1>\r\n" +
8 "<p>Using DocSaveOptions Class, you can programmatically apply a wide range of conversion parameters.</p>\r\n";
9
10File.WriteAllText(documentPath, code);
11
12// Initialize an HTML Document from the html file
13using HTMLDocument document = new HTMLDocument(documentPath);
14
15// Initialize DocSaveOptions. Set A5 as a page-size
16DocSaveOptions options = new DocSaveOptions();
17options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(Length.FromInches(8.3f), Length.FromInches(5.8f)));
18
19// Convert HTML to DOCX
20Converter.ConvertHTML(document, options, savePath);
Le constructeur
DocSaveOptions() initialise une instance de la classe DocSaveOptions qui est passée à la méthode ConvertHTML(). La méthode ConvertHTML() prend le document
, les options
, le chemin du fichier de sortie savePath
et effectue l’opération de conversion. La classe DocSaveOptions fournit de nombreuses propriétés qui vous donnent un contrôle total sur un large éventail de paramètres et améliorent le processus de conversion du HTML au format DOCX. Dans l’exemple ci-dessus, nous utilisons la propriété PageSetup qui spécifie la
taille de page du document DOCX.
Fournisseurs de flux de sortie
S’il est nécessaire d’enregistrer des fichiers dans un espace de stockage distant (par exemple, un nuage, une base de données, etc.), vous pouvez mettre en œuvre l’interface ICreateStreamProvider afin de contrôler manuellement le processus de création de fichiers. Cette interface est conçue comme un objet de rappel pour créer un flux au début du document/de la page (en fonction du format de sortie) et libérer le flux créé au début après le rendu du document/de la page.
Aspose.HTML for .NET fournit différents types de formats de sortie pour les opérations de rendu. Certains de ces formats produisent un seul fichier de sortie (par exemple PDF, XPS), d’autres créent plusieurs fichiers (formats d’image JPG, PNG, etc.)
L’exemple ci-dessous montre comment mettre en œuvre et utiliser votre propre MemoryStreamProvider dans l’application :
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}
L’extrait de code suivant montre comment convertir un fichier HTML en fichier DOCX à l’aide d’un flux de mémoire.
1// Convert HTML to DOCX in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Initialize an HTML document
7using HTMLDocument document = new HTMLDocument(@"<h1>Convert HTML to DOCX File Format!</h1>", ".");
8
9// Convert HTML to DOCX using the MemoryStreamProvider
10Converter.ConvertHTML(document, new DocSaveOptions(), streamProvider);
11
12// Get access to the memory stream that contains the result data
13MemoryStream memory = streamProvider.Streams.First();
14memory.Seek(0, SeekOrigin.Begin);
15
16// Flush the result data to the output file
17using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.docx")))
18{
19 memory.CopyTo(fs);
20}
Téléchargez la bibliothèque Aspose.HTML for .NET, qui vous permet de convertir avec succès, rapidement et facilement vos documents HTML, MHTML, EPUB, SVG et Markdown vers les formats les plus populaires.
Aspose.HTML propose un Convertisseur HTML vers DOCX en ligne gratuit qui convertit HTML vers DOCX avec une grande qualité, facilement et rapidement. Il suffit de télécharger, de convertir vos fichiers et d’obtenir des résultats en quelques secondes !