zoukankan      html  css  js  c++  java
  • html to openxml

    Html to OpenXml

    How to start ?

    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:

    <!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);
    }
  • 相关阅读:
    继承 多态
    封装练习
    PHP 面向对象封装
    面向对象 类和对象
    PHP前端和数据库的连接
    数组2
    PHP数组
    正则表达式
    PHP字符串
    linux基础
  • 原文地址:https://www.cnblogs.com/zcm123/p/9364669.html
Copyright © 2011-2022 走看看