Как конвертировать .doc или .docx файлы в .txt - PullRequest
3 голосов
/ 26 апреля 2010

Мне интересно, как вы можете конвертировать файлы Word .doc / .docx в текстовые файлы через Java. Я понимаю, что есть вариант, в котором я могу сделать это через само Word, но я бы хотел сделать что-то вроде этого:

java DocConvert somedocfile.doc converted.txt

Спасибо.

Ответы [ 4 ]

7 голосов
/ 26 апреля 2010

Если вас интересует библиотека Java, которая работает с файлами документов Word, вы можете посмотреть, например, на Apache POI . Цитата с сайта:

Почему я должен использовать Apache POI?

Основное использование API Apache POI - это для приложений извлечения текста таких как веб-пауки, построители индексов и Системы управления контентом.


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


Редактировать: Если вы не хотите использовать существующую библиотеку, но выполняете всю тяжелую работу самостоятельно, вам будет приятно узнать, что Microsoft опубликовала требуемые спецификации формата файлов. ( Microsoft Open Specification Promise содержит список доступных спецификаций. Просто найдите в Google любые из них, которые вас интересуют. В вашем случае вам понадобится, например, формат составного файла OLE2, двоичный файл Word 97 формат и форматы Open XML.)

4 голосов
/ 14 февраля 2014

Использовать утилиту командной строки Apache Tika . Тика поддерживает широкий спектр форматов (например: DOC, DOCX, PDF, HTML, RTF ...)

java -jar tika-app-1.3.jar -t somedocfile.doc > converted.txt

Programatically:

File inputFile = ...;
Tika tika = new Tika();
String extractedText = tika.parseToString(inputFile);

Вы также можете использовать Apache POI . У них есть инструмент для извлечения текста из doc / docx Извлечение текста . Если вы хотите извлечь только текст, вы можете использовать код ниже. Если вы хотите извлечь Rich Text (например, форматирование и стиль), вы можете использовать Apache Tika.

Извлечь документ:

InputStream fis = new FileInputStream(...);
POITextExtractor extractor;
// if docx
if (fileName.toLowerCase().endsWith(".docx")) {
    XWPFDocument doc = new XWPFDocument(fis);
    extractor = new XWPFWordExtractor(doc);
} else {
    // if doc
    POIFSFileSystem fileSystem = new POIFSFileSystem(fis);
    extractor = ExtractorFactory.createExtractor(fileSystem);
}
String extractedText = extractor.getText();
1 голос
/ 26 апреля 2010

Вы должны рассмотреть возможность использования этой библиотеки. Его Apache POI

Выдержка с сайта

Короче говоря, вы можете читать и писать MS Файлы Excel с использованием Java. К тому же, Вы можете читать и писать MS Word и MS Файлы PowerPoint с использованием Java. апаш POI - это ваше решение для Java Excel (для Excel 97-2008). У нас есть полный API для портирования других OOXML и OLE2 форматировать и приветствовать других участвовать.

0 голосов
/ 12 мая 2010

Докмос может прочитать документ и выплюнуть текст в нем. Требует установки некоторой инфраструктуры (например, OpenOffice). Вы также можете использовать JODConverter .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...