2015-11-04 38 views
0

对于Apache POI,我正在阅读Word文档,包括doc和docx。旧的CharacterRun for doc有一个isHighlighted函数,告诉我文本是否被高亮显示。对于docx文件,是否有与XWPFRun等价的函数?检查XWPFRun是否突出显示

+0

出了什么问题[XWPFRun.isHighlighted()](https://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFRun.html#isHighlighted%28%29)?可通过[Common CharacterRun interface](https://poi.apache.org/apidocs/org/apache/poi/wp/usermodel/CharacterRun.html#isHighlighted%28%29)获得(您无法获得颜色XWPF中的亮点,只有HWPF,因为它们处理颜色的方式非常不同) – Gagravarr

+0

似乎不起作用。必须做我在我发布的答案中所做的。 – fanfavorite

+0

不工作怎么样? [在POI源代码树中有一个单元测试](https://svn.apache.org/repos/asf/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun。 Java)为例! – Gagravarr

回答

0

经过大量的研究和分析,我发现CTRPr类中有一个函数。

//p is the XWPFParagraph 
for (XWPFRun pRun : p.getRuns()) { 
    CTRPr ctrpr = pRun.getCTR().getRPr(); 
    if (ctrpr != null && ctrpr.isSetHighlight()) { 
     //This is highlighted 
    } 
} 
+0

你好fanfavorite,我可以理解你所描述的,但你能分享如何实际突出文本? – muasif80

+0

看起来您可以为新值和pRun.getCTR()。getRPr()。getHighlight()。setVal(STHighlightColor.CYAN)创建pRun.getCTR()。addNewRPr()。addNewHighlight().setVal(STHighlightColor.CYAN)改变价值。上面使用的pRun是可变的。 – fanfavorite