2011-12-15 163 views
1

我使用this library将html文本转换为文字格式。OpenXML Word - 将标题样式添加到标题

一切正常。

我现在需要设计一些样式。我现在用来生成文档的是,我有一个标题和子标题和标题文本的列表,我使用每个循环来获取标题和副标题及其文本并输出它们,但我希望这些标题和副标题分配标题1到类别和标题2到子类别。这里是我到目前为止:

foreach循环来获得名作和子类别,其文本

foreach (var category in ct) 
      { 
       strDocumentText.Append(category.ParentCat.CategoryName); 
       strDocumentText.Append("<br />"); 
       if(category.DocumentText != null) 
       { 
        strDocumentText.Append(category.DocumentText); 
       } 

       if (category.Children != null) 
       { 
        foreach (var subCategoreis in category.Children) 
        { 
         strDocumentText.Append("<p />"); 
         strDocumentText.Append(subCategoreis.ParentCat.CategoryName); 
         strDocumentText.Append("<br />"); 
         if (category.DocumentText != null) 
         { 

          strDocumentText.Append(subCategoreis.DocumentText); 
         } 
        } 
       } 

      } 

创建Word文档:

StringBuilder strDocumentText = new StringBuilder(); 

string html = strDocumentText.ToString(); 
using (MemoryStream generatedDocument = new MemoryStream()) 
       { 
        BuildDocument(generatedDocument, html); 
        using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.Document)) 
        { 
         MainDocumentPart mainPart = wordDoc.MainDocumentPart; 
         if (mainPart == null) 
         { 
          mainPart = wordDoc.AddMainDocumentPart(); 
          new DocumentFormat.OpenXml.Wordprocessing.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(); 
        } 

        fs.Close(); 
        File.WriteAllBytes(saveFileDialog1.FileName, generatedDocument.ToArray()); 
+0

好的,让我以另一种方式解释这个..我如何设置段文本默认样式(标题1,标题2)的文档? – James 2011-12-15 13:55:18

回答

0

首先,你需要的样式定义添加到该文件。构建OpenXml文档时,不包括默认样式。定义样式之后,可以在段落属性元素(序列化为“pPr”)或运行元素属性中引用它们。看看:http://msdn.microsoft.com/en-us/library/cc850838.aspx

相关问题