Чтение документов Microsoft Word в виде обычного текста (DOC, DOCX) на Java

Я ищу что-нибудь на Java для чтения в документах Word для обработки их текста ... все, что мне нужно, это текст, ничего особенного. Я знаю про Apache POI, но сейчас он не поддерживает DOCX, что-нибудь там есть?


person Community    schedule 15.02.2010    source источник


Ответы (4)


Если вам не нужна информация о форматировании, изображения и все прочие причудливые вещи, тогда работа будет намного проще. Достаточно от 5 до 10 строк кода.

  1. Рассматривайте DOCX как zip-файл. Он состоит из группы файлов, в которую входит «document.xml». Используйте ZipInputStream и извлеките только этот файл. (вы можете использовать свою любимую zip-утилиту, открыть docx и убедиться в этом сами!)
  2. Используйте парсер SAX и прочитайте содержимое между телом узла / p / r / t - вуаля, вы получили текст!

Это применимо, только если вам нужен только текст.

person Joseph Kulandai    schedule 01.03.2010
comment
Привет, Джозеф, ты можешь записать здесь короткий код? Это было бы для меня БОЛЬШОЙ ПОМОЩЬ ... - person Rahul Utb; 14.05.2011

Погуглив, я нашел OpenXML4J. Это может решить вашу проблему. Я не использовал это, пока не уверен, что кто-то в сообществе будет лучше разбираться в этом.

Примечание: это повторяющийся вопрос. Это решение плюс небольшое обсуждение. Ссылка на вопрос.

person XanderLynn    schedule 15.02.2010
comment
Разумно ли оставить оба вопроса, учитывая, что один из них касается формата документа Word, а другой - Excel? Они могут быть двумя подмножествами одной большой спецификации формата документа, я, честно говоря, не знаю. - person Bill the Lizard; 15.02.2010
comment
Я считаю, что это дубликат, потому что каждый вопрос касается Office 2007 java api. Другой вопрос, ИМХО, действительно отвечает на почту. :) - person XanderLynn; 15.02.2010

Попробуйте apache poi - он может обрабатывать документы doc, docx, xls, xlsx, ppt, pptx.

Еще одно решение производственного уровня - это OpenOffice в автономном режиме, который можно использовать даже в сценарии на стороне сервера.

person ccpizza    schedule 03.09.2012

Вы можете попробовать docx4j; см. http://dev.plutext.org/svn/docx4j/trunk/docx4j/src/main/java/org/docx4j/TextUtils.java.

person JasonPlutext    schedule 31.08.2010