не могу получить объект Tbl из Body с помощью пакета docx4j
public File BoldWorkInDocx(File file) throws IOException {
ArrayList<String> keywords = new ArrayList<>();
keywords.add("Персонажи:");
keywords.add("Массовка:");
keywords.add("Групповка:");
keywords.add("Грим:");
keywords.add("Костюм:");
keywords.add("Реквизит:");
keywords.add("Художники:");
keywords.add("CG графика:");
keywords.add("Игровой транспорт:");
keywords.add("Трюк:");
keywords.add("Каскадер:");
keywords.add("Пиротехник:");
keywords.add("Спецэффект:");
keywords.add("Консультант СОБР:");
WordprocessingMLPackage wordMLPackage = null;
try {
wordMLPackage = WordprocessingMLPackage.load(file);
} catch (Docx4JException e) {
throw new RuntimeException(e);
}
org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart mainDocumentPart =
wordMLPackage.getMainDocumentPart(); //main part got
Body body = mainDocumentPart.getJaxbElement().getBody();
org.docx4j.wml.Tbl tbl = (Tbl)
mainDocumentPart.getJaxbElement().getBody().getContent().get(0);
// это было экспериментом, но он тоже не принес плодов, получаемый элемент под индексом 0 является JAXBElement с declaredType class org.docx4j.wml.Body но привести его к объекту Tbl не получается или получить из Body таблицу
Tbl table = null;
List<Object> contentList = body.getContent();
for (Object content : contentList) {
if (content instanceof Body) {
List<Object> childContents = ((Body) content).getContent();
for(Object childObject : childContents){
if(childObject instanceof Tbl){ // этот способо тоже не получает объект Tbl
System.out.println("Найдена таблица в документе!");
// Найдена таблица, можно проводить дальнейшие действия
table = (Tbl) childObject;
break;
}
}
}
}
ObjectFactory wmlObjectFactory = Context.getWmlObjectFactory();
for (String keyword : keywords) {
highlightKeywords(table, keyword,wmlObjectFactory);
}
return file;
}