Як витягнути текст з документів 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?
Пхіо Аркар Лвін

Просто гугл і отримав stosberg.net/odt2txt . ніколи не пробував цього, схоже, це робить свою роботу.
nahar

класно дякую. catdoc це нормально, але він не може перетворити xls, ppt для тестування, я використовую xls2csv та apache-tika для них. перевірити їх!
Пхіо Аркар Лвін

@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 - це те, що я шукав. Це має бути прийнята відповідь (я не знаю, чи можете ви прийняти власну відповідь)
користувач2518618

2
зробив, безсоромно ...: D
Пхіо Аркар Лвін

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 - невидимий --convert-to txt: Текстові файли
Gagaro

0

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


Цікаво, що може конвертувати будь-які матеріали для друку у PDF? Чи можете ви вказати мені і прикладом зробити це для Doc або Xls?
Пхіо Аркар Лвін

0

wv - це один варіант, і IIRC OpenOffice можна повідомити з командного рядка про експорт у форматі pdf та вихід.


unoconv, здається, є інструментом, що стосується OpenOffice, якого я не міг згадати.
птман


0

1.doc catdoc або antiword для doc-файлів для перетворення ви можете використовувати таку команду catdoc file.doc> файл або antiword file.doc> файл

  1. docx docx2txt

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


(1) Catdoc був запропонований у відповіді, яка була опублікована протягом години запитання, майже три роки тому. Чому ти це повторюєш? (2) Де можна отримати антислово? (3) Що означає нижня половина вашої відповіді?
Скотт

-1

Docsplit - ідеальний інструмент для вилучення тексту з PDF. Це дорогоцінний камінь. Тому вам слід встановити рубін і дорогоцінний камінь у вашій системі Linux, перш ніж використовувати команду docsplit.

Якщо у вашій системі не було рубіну та самоцвіту, будь ласка, дотримуйтесь інструкцій.

Ви повинні мати root права на встановлення програмного забезпечення (якщо ви хочете, щоб воно було доступним для всіх користувачів).

Встановіть рубін на Linux: yum install 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.