如何在单词段落范围内获得单词line's颜色的一部分?

本文关键字:颜色 一部分 line 单词 单词段 范围内 | 更新日期: 2023-09-27 18:01:19

我用WORD . applicationclass()读取WORD文档

和文档样式是kind this(doc)

五星级

BBBB

①AAA②BBB③CCC(第三部分为红色)④DDD

我用

得到每一行

String docLine= doc.段落[i].range.text.Trim();

和运行[doc.paragraphs [3] .range.text.Trim();)得到(第3行)

①AAA②BBB③CCC(第三部分为红色)④DDD

![在这里输入图像描述][2]一行4部分不同颜色的单词。

这是我的问题,当我想获得红色第三部分的行我不知道怎样才能得到它。

因为我不知道如何在段落[3]中设置子范围。range包含我想要的内容。

我已经检查了MSDN,只发现你可以设置一个范围的开始和结束时,它是document.Range.

所以我问的是谁能告诉我如何在段落[i].range中设置子范围。这样我就可以使用range.font.colorindex

如果没有办法做到这一点,那么我怎么能得到的颜色信息,当我读取行的每一部分,以便当我读取红色的部分,我可以知道。

谢谢

如何在单词段落范围内获得单词line's颜色的一部分?

谢谢你的帮助。我找到了找到我要的零件的方法。从这个问题:重新定义一个段落范围,以包括段落中单词的子集看来我没找对哼哼~

使用

Microsoft.Office.Interop.Word。范围rng =doc.paragraphs [3] .Range.Duplicate;

它可以得到一个可操作的范围(你不能改变段落。范围),

rng.MoveEnd (WdUnits。wdCharacter, endPos - integer . characters . count);rng.MoveStart (WdUnits。wdCharacter startPos);

我可以找到我想要的

提示:范围。setRange(int start, int end)将总是(我认为)相对于文档的开始和结束。当你试图写一个句子或一行时,它是无助的。