2015-11-04 64 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