为标题添加样式
本文关键字:样式 添加 标题 | 更新日期: 2023-09-27 18:18:01
我正在使用这个库将html文本转换为word格式。
一切都很完美。
我现在需要设置一些文本的样式。我现在用来生成文档的是,我有一个标题、副标题和标题文本的列表,我使用每个循环来获取标题、副标题及其文本并输出它们,但我希望这些标题和副标题将heading1分配给category, heading2分配给subcategory。以下是我目前得到的结果:
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());
首先需要向文档添加样式定义。在构造OpenXml文档时不包括默认样式。定义样式之后,可以在段落属性元素(序列化为"pPr")或运行元素属性中引用它们。看看:http://msdn.microsoft.com/en-us/library/cc850838.aspx