我不知道如何将粗体和斜体字与正常单词分开。
任何人都可以建议如何使用C#识别粗体和斜体字吗?
这是我到目前为止所做的:
foreach (Word.Paragraph objparagraph in document.Paragraphs)
{
string sLine = objparagraph.Range.Text;
if (sLine.Contains(Font.Bold && Font.Italic))
{
}
}
答案 0 :(得分:0)
首先,我无法测试此代码,因此我不承诺它会起作用!我提供这个,但想要提前答应我的答案是AFAIK!
那就是说,你当前正在做什么是行不通的,因为你正在将段落对象(包含所需的粗体和斜体信息)转换为 string 对象(不包含粗体或斜体信息。也就是说,在您有机会测试它是否存在之前,您正在丢失粗体/斜体信息!而不是使用.Range.Text属性,你想只使用.Range属性。代码看起来像这样:
foreach (Word.Paragraph objparagraph in document.Paragraphs)
{
int TRUE_CODE = 1; // I do NOT know if this is correct, it could be another number!
Range rWords = objparagraph.Range.Text;
foreach (Range word in rWords.Words
if (word.Bold == TRUE_CODE)
{
// handle bold case
}
if (word.Italic == TRUE_CODE)
// handle italic case
}
}
}
由于我没有测试过这段代码,请注意可能需要调整才能使其正确。特别是,你会想到word.Bold和word.Italic会返回true或false,但它们不会。相反,它们返回一个表示三件事之一的整数。
true - the word is bold (or italic)
false - the word is _not_ bold (or italic)
wdUndefined - the word is something else (combination, etc.)
(请参阅以下链接获取相关文档)问题是,我不知道每个类别的整数是多少。在上面的代码片段中,我假设1映射为true,但这可能不正确!希望它足以让你开始。快乐的编码!