Html to OpenXmlhtml
Create a new console application. Add a reference to DocumentFormat.OpenXml.dll (shipped with the OpenXml SDK 2.0).
Add an html file and fill it with:app
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> </head> <body> Looks how cool is <font size="x-large"><b>Open Xml</b></font>. Now with <font color="red"><u>HtmlToOpenXml</u></font>, it nevers been so easy to convert html. <p> If you like it, add me a rating on <a href="http://notesforhtml2openxml.codeplex.com">codeplex</a> </p> <hr> </body> </html>
Add a Resources.resx component and add your html file inside it.ide
In Program.cs, add these lines of code:code
using System.IO; using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; using NotesFor.HtmlToOpenXml; ... static void Main(string[] args) { const string filename = "test.docx"; string html = Properties.Resources.DemoHtml; if (File.Exists(filename)) File.Delete(filename); using (MemoryStream generatedDocument = new MemoryStream()) { using (WordprocessingDocument package = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.Document)) { MainDocumentPart mainPart = package.MainDocumentPart; if (mainPart == null) { mainPart = package.AddMainDocumentPart(); new Document(new Body()).Save(mainPart); } HtmlConverter converter = new HtmlConverter(mainPart); Body body = mainPart.Document.Body; var paragraphs = converter.Parse(html); for (int i = 0; i < paragraphs.Count; i++) { body.Append(paragraphs[i]); } mainPart.Document.Save(); } File.WriteAllBytes(filename, generatedDocument.ToArray()); } System.Diagnostics.Process.Start(filename); }