5
votes

I'm looking for something in Java to read in Word documents to process their text.. all I need is there text, nothing fancy. I know about Apache POI, however it doesn't include support for DOCX right now, anything out there?

4

4 Answers

5
votes

If you don't require formatting information, images and all other fancy stuff, then the job is lot easier. Just some 5 to 10 lines of code will do.

  1. Treat DOCX as a zip file. It consists a bunch of files which includes 'document.xml'. Use ZipInputStream and extract that file alone. (you may use your favorite zip utility and open docx and see for yourself!)
  2. Use a SAX parser and read contents between node body/p/r/t - voila you got the text!

This is applicable only if you need the text only.

3
votes

With some googling I found OpenXML4J. This might solve your issue. I have not used this before I am sure someone in the community will have better insight.

Note: This is a duplicate question. This has the solution plus a bit of discussion. Link to the question.

2
votes

Try apache poi - it can handle doc, docx, xls, xlsx, ppt, pptx.

Another production-level solution is OpenOffice in headless mode which can even be used in a server-side scenario.