我可以获得段落的风格,但我不知道如何获得一个词的样式。
我正在分析文字而我要获取所有格式化的文字。
示例
输入:
Stack Overflow 是一个私营网站,是Stack Exchange Network的旗舰网站,由 Jeff Atwood 和 Joel Spolsky 于2008年创建。它被创建为比较早期的问答网站更加开放的替代方案,例如专家交流。该网站的名称是通过投票选出的 2008年4月读者 Coding Horror ,Atwood的热门节目博客
输出:
Stack Overflow,Jeff Atwood,Joel Spolsky,专家交流,编码恐怖。
其他: 我不打算用它来转换为HTML。我只需要获得风格并用它来估计这个词的重要性。如果单词是粗体,这意味着这个单词更重要。
答案 0 :(得分:1)
您使用什么来获得Paragraph
的风格?
然而,为了检索该信息,您需要解决应用于目标Run元素(包含您的单词的元素)的样式。
如果直接在Run
元素(作为其子RunProperties
元素)上定义样式,这可能很简单,但如果它不是,那么您需要通过检查应用的样式,基于样式的样式等来解决样式。简而言之,这是一个有点复杂的主题,对于我建议阅读this的基本介绍。
一个简单直接的解决方案是使用可以为您解析样式的库,例如GemBox.Document:
DocumentModel document = DocumentModel.Load("Sample.docx");
foreach (Run run in document.GetChildElements(true, ElementType.Run))
if (run.CharacterFormat.Bold)
Console.WriteLine(run.Text);
此外,您可能还想查看this reading example。
答案 1 :(得分:0)
using Microsoft.Office.Interop.Word;
using System;
using System.Collections.Generic;
using System.Text;
...
Application wordApp = new Application();
object miss = System.Reflection.Missing.Value;
object readOnly = true;
object filename = "...\Test.docx";
Document doc = wordApp.Documents.Open(ref filename, ref miss, ref
readOnly,...);
List<string> boldList = new List<string>();
foreach (Range rng in doc.StoryRanges)
foreach (Range rngWord in rng.Words)
if (rngWord.Bold != 0)
boldList.Add(rngWord.Text);
foreach (var item in boldList)
Console.WriteLine(item);
Console.ReadKey();
wordApp.Quit();