2011-12-15 3 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); 
         } 
        } 
       } 

      } 

Создать текстовый документ:

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

ok позвольте мне объяснить это по-другому .. как установить абзац по умолчанию (заголовок1, заголовок2) слова документа? – James

ответ

0

Прежде всего, необходимо добавить определение стиля в документ. Стили по умолчанию не включаются при создании документа OpenXml. После определения стилей вы можете ссылаться на них в элементе свойств абзаца (сериализован как «pPr») или свойства элемента запуска. Посмотрите на: http://msdn.microsoft.com/en-us/library/cc850838.aspx

Смежные вопросы