public static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) {
List<Object> result = new ArrayList<Object>();
if (obj instanceof JAXBElement)
obj = ((JAXBElement<?>) obj).getValue();
if (obj.getClass().equals(toSearch))
result.add(obj);
else if (obj instanceof ContentAccessor) {
List<?> children = ((ContentAccessor) obj).getContent();
for (Object child : children) {
result.addAll(getAllElementFromObject(child, toSearch));
}
}
return result;
}
public static void main(String[] args) throws Docx4JException {
String inputfilepath = "C:\\Users\\sugreev.sharma\\Desktop\\BMS\\test\\Ireland CTAg - Authority and CTI_July 2018.docx";
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(inputfilepath));
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
List<Object> paragraphs = getAllElementFromObject(mainDocumentPart, P.class);
for (Object par : paragraphs) {
P p = (P) par;
// Get all the runs in the paragraph
List<Object> allRuns = p.getContent();
for (Object run : allRuns) {
R r = (R) run;
// Get the Text in the Run
List<Object> allText = r.getContent();
for (Object text : allText) {
Text txt = (Text) text;
System.out.println("--> " + txt.getValue());
}
}
}
}
Это мой код, который я использую в проекте.Я использую docx4j для обработки документов.