2015-11-04 2 views
0

Для Apache POI я читаю документы Word, как doc, так и docx. Старый CharacterRun для doc имеет функцию isHighlighted, которая сообщает мне, выделен ли текст или нет. Существует ли эквивалентная функция для файлов XWPFRun для docx?Проверьте, выделен ли XWPFRun

+0

Что случилось с [XWPFRun.isHighlighted()] (https://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFRun.html#isHighlighted%28%29)? Доступно через интерфейс [Common CharacterRun] (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(). AddNewRPr(). AddNewHighlight(). SetVal (STHighlightColor.CYAN) для нового значения и pRun.getCTR(). GetRPr(). GetHighlight(). SetVal (STHighlightColor.CYAN) для изменения значения. pRun является переменной, которую я использовал выше. – fanfavorite