Для Apache POI я читаю документы Word, как doc, так и docx. Старый CharacterRun для doc имеет функцию isHighlighted, которая сообщает мне, выделен ли текст или нет. Существует ли эквивалентная функция для файлов XWPFRun для docx?Проверьте, выделен ли XWPFRun
ответ
После многих исследований и анализа я смог выяснить, есть ли функция в классе CTRPr.
//p is the XWPFParagraph
for (XWPFRun pRun : p.getRuns()) {
CTRPr ctrpr = pRun.getCTR().getRPr();
if (ctrpr != null && ctrpr.isSetHighlight()) {
//This is highlighted
}
}
Привет fanfavorite, я могу понять, что вы описали, но можете ли вы поделиться, как на самом деле выделить текст? – muasif80
Похоже, вы можете сделать pRun.getCTR(). AddNewRPr(). AddNewHighlight(). SetVal (STHighlightColor.CYAN) для нового значения и pRun.getCTR(). GetRPr(). GetHighlight(). SetVal (STHighlightColor.CYAN) для изменения значения. pRun является переменной, которую я использовал выше. – fanfavorite
Что случилось с [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
Кажется, не работает. Пришлось делать то, что я сделал в ответе, который я опубликовал. – fanfavorite
Не работает как? [Для этого в блоке источников POI есть единичный тест (https://svn.apache.org/repos/asf/poi/trunk/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFRun. java), например! – Gagravarr