Html to OpenXml

来源:互联网 发布:kali 远程控制windows 编辑:程序博客网 时间:2024/05/29 19:57

How to start ?

Create a new console application. Add a reference to DocumentFormat.OpenXml.dll (shipped with the OpenXml SDK 2.0 and HtmlToOpenXml 1.4.1).
Add an html file and fill it with:
<!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.

In Program.cs, add these lines of 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);}


Run your application and you will obtain:
demo.jpg

Referenced from: http://html2openxml.codeplex.com/documentation?referringTitle=Home