Как извлечь текст из документов MS Office в Linux?


18

Мне нужен способ извлечения текста из всех типов документов MS Office (Word, Excel, Powerpoint) в Linux. Я предполагаю, что может быть несколько различных подходов для достижения этой цели, например, сценарий Bash или Python, или преобразование их в PDF, а затем извлечение текста с помощью такого инструмента, как pdftotext.

Кажется, это может быть обычным требованием. Существует ли установленная процедура или инструмент, позволяющий легко это сделать?

Ответы:


16

Catdoc может конвертировать doc, xls & ppt в текст. Второй вариант будет wvWare .

Для получения дополнительной утилиты проверьте http://www.linux.com/archive/articles/52385 на слово к тексту обложки и


Catdoc! Это то, что я ищу! Будет ли это работать на ODF?
Phyo Arkar Lwin

Просто гуглил и получил stosberg.net/odt2txt . никогда не пробовал, кажется, что это делает работу.
Нахар

хорошо, спасибо. С catdoc все в порядке, но он не может конвертировать xls, ppt для тестирования, я использую xls2csv и apache-tika для них. Проверь их!
Phyo Arkar Lwin

@nahar, odt2txt работает только в формате odt, а не в формате MS DOC.
Аллен

1
отлично, catdoc дает мне ошибку сегментации
fotanus

8

Наконец-то я нашел идеальный инструмент для разбора скриптов документов, это apache-tika, он может разбирать тысячи нетекстовых форматов в текст, что очень круто!

Получите Apache Tika здесь:

http://tika.apache.org/

(Пользователи Mac Homebrew: brew install tika)

Интерфейс командной строки работает так:

tika --text something.docx > something.txt


+1: Apache Tika - серьезный проект с открытым исходным кодом, работает также в Windows, работает из командной строки, имеет графический интерфейс с перетаскиванием, открывает все (Word, Excel, PowerPoint, PDF, SVG), извлекает метаданные документ также. Попробовав большинство вышеперечисленных инструментов, я искал Apache Tika. Это должен быть принятый ответ (я не знаю, можете ли вы принять свой собственный ответ)
user2518618

2
сделал, бесстыдно ...: D
Phyo Arkar Lwin

7

Abiword может конвертировать из командной строки любые форматы файлов, которые он знает.

Преобразовать из Word в простой текст:

abiword --to=txt myfile.doc

Создайте PDF из файла Word:

abiword --to=pdf myfile.doc

И так далее. Результатами в этих случаях будут myfile.txt или myfile.pdf. Если вы хотите указать имя вывода, вы можете сделать это тоже:

abiword --to=txt --to-name=output.txt myfile.doc

Конвертировать ODT в Word:

abiword --to=doc myfile.odt

Преобразовать слово в ODT:

abiword --to=odt myfile.doc

Справедливости ради других ответов следует отметить, что AbiWord использует wvWare для обработки документов Word, но даже домашняя страница wvWare рекомендует использовать AbiWord вместо этого для большинства преобразований.

Я ненавижу текстовые процессоры. Это основная причина, по которой я установил AbiWord.

Возможно, вас заинтересует unoconv , аналогичный инструмент, поддерживающий форматы, известные OpenOffice (включая электронные таблицы и т. П.), Но у меня нет опыта работы с ним лично.


Для документа .docx это путается: S Но хорошее решение для .doc
Warface

3

С LibreOffice вы можете сделать:

libreoffice --invisible --convert-to pdf file1.ppt file2.ppt

4
Вы можете использовать текстовый фильтр для преобразования в txt: libreoffice --invisible --convert-to txt: текстовые файлы
Gagaro,

0

Вы можете использовать CUPS (виртуальный принтер) и с помощью ld.


Интересно, может ли это конвертировать любой печатный материал в PDF? Можете ли вы указать мне и пример сделать это для Doc или Xls?
Phyo Arkar Lwin

0

wv - это одна из опций, и IIRC OpenOffice может сказать из командной строки экспортировать как pdf и выйти.


unoconv - это инструмент, связанный с OpenOffice, который я не мог вспомнить.
2010 года


0

1.doc catdoc или antiword для файлов doc для конвертации вы можете использовать следующую команду catdoc file.doc> file или antiword file.doc> file

  1. docx docx2txt

  2. pdf файл emacs.pdf файл ctrl-x ctrl-s


(1) Catdoc был предложен в ответе, который был размещен в течение часа после вопроса, почти три года назад. Почему ты это повторяешь? (2) Где можно получить антислово? (3) Что означает нижняя половина вашего ответа?
Скотт

-1

Docsplit является идеальным инструментом для извлечения текста из PDF. Это рубиновый камень. Поэтому вы должны установить ruby ​​и gem в вашей системе Linux перед использованием команды docsplit.

Если в вашей системе нет рубина и драгоценного камня, следуйте инструкциям.

Для установки программного обеспечения вы должны быть пользователем root (при условии, что вы хотите, чтобы оно было доступно всем пользователям).

Установите ruby ​​в Linux: yum установите ruby
Установите гем, пожалуйста, скачайте последний пакет гем, затем следуйте инструкциям

tar xzf rubygems-xxxx.tgz
cd rubygems-xxxx
ruby setup.rb

Теперь, когда RubyGems установлен, у вас должна быть команда gem (gem - команда, используемая для взаимодействия с системой пакетов RubyGems). Проверьте это, запустив:

список драгоценных камней

Теперь перейдите к следующему шагу, чтобы установить гем docsplit, перейдите на следующий сайт. http://documentcloud.github.com/docsplit/


Это полная противоположность тому, что попросил ОП.
CarlF
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.