Jak wyodrębnić tekst z dokumentów MS Office w systemie Linux?

18

Potrzebuję sposobu na wyodrębnienie tekstu ze wszystkich typów dokumentów MS Office (Word, Excel, Powerpoint) w Linuksie. Przewiduję, że może istnieć kilka różnych podejść do osiągnięcia tego, na przykład skrypt Bash lub Python, lub konwersja ich do formatu PDF, a następnie wyodrębnianie tekstu za pomocą narzędzia takiego jak pdftotext.

Wydaje się, że może to być powszechny wymóg. Czy istnieje ustalona procedura lub narzędzie, aby łatwo to osiągnąć?

Phyo Arkar Lwin
źródło

Odpowiedzi:

16

Catdoc może konwertować doc, xls i ppt na tekst. Drugą opcją byłoby wvWare .

Aby uzyskać więcej narzędzi, sprawdź http://www.linux.com/archive/articles/52385, aby znaleźć tekst na okładki i

nahar
źródło
Catdoc! Tego właśnie szukam! Czy to zadziała również dla ODF?
Phyo Arkar Lwin
Właśnie googlowałem i dostałem stosberg.net/odt2txt . nigdy tego nie próbowałem, wygląda na to, że to działa.
nahar
fajne dzięki. catdoc jest w porządku, ale nie można przekonwertować xls, ppt na test, używam dla nich xls2csv i apache-tika. Sprawdź je!
Phyo Arkar Lwin
@nahar, odt2txt działa tylko w formacie odt, a nie ms doc.
Allen
1
świetnie, catdoc daje mi błąd segmentacji
fotanus
8

W końcu znalazłem idealne narzędzie do skryptowania parsowania dokumentów, jest to apache-tika, potrafi parsować gazillionowe formaty nietekstowe na tekst, co jest bardzo fajne!

Pobierz Apache Tika tutaj:

http://tika.apache.org/

(Użytkownicy Mac Homebrew: brew install tika)

Interfejs wiersza poleceń działa w następujący sposób:

tika --text something.docx > something.txt

Phyo Arkar Lwin
źródło
+1: Apache Tika to poważny projekt typu open source, działa również w systemie Windows, działa z wiersza poleceń, ma GUI z funkcją przeciągnij i upuść, otwiera wszystko (Word, Excel, PowerPoint, PDF, svg), wyodrębnia metadane dokument również. Po wypróbowaniu większości powyższych narzędzi, Apache Tika był tym, czego szukałem. To powinna być zaakceptowana odpowiedź (nie wiem, czy możesz zaakceptować własną odpowiedź)
user2518618,
2
zrobił, bezwstydnie ...: D
Phyo Arkar Lwin
7

Abiword może konwertować z wiersza polecenia między znanymi formatami plików.

Konwertuj z Worda na zwykły tekst:

abiword --to=txt myfile.doc

Utwórz plik PDF z pliku Word:

abiword --to=pdf myfile.doc

I tak dalej. Wyniki w tych przypadkach to myfile.txt lub myfile.pdf. Jeśli chcesz podać nazwę wyjściową, możesz to zrobić:

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

Konwertuj ODT na Word:

abiword --to=doc myfile.odt

Konwertuj słowo na ODT:

abiword --to=odt myfile.doc

W odpowiedzi na inne odpowiedzi należy zauważyć, że AbiWord używa wvWare do obsługi dokumentów Word, ale nawet strona główna wvWare zaleca używanie AbiWord zamiast większości konwersji.

Nienawidzę edytorów tekstu. To jest główny powód, dla którego mam zainstalowany AbiWord.

Może Cię również zainteresować unoconv , który jest podobnym narzędziem obsługującym formaty, które zna OpenOffice (które obejmowałyby arkusze kalkulacyjne i tym podobne), ale nie mam z tym doświadczenia.

frabjous
źródło
Dokument .docx to bałagan: S Ale fajne rozwiązanie dla .doc
Warface
3

Z LibreOffice możesz:

libreoffice --invisible --convert-to pdf file1.ppt file2.ppt
dorycki
źródło
4
Możesz użyć filtra Tekstu, aby przekonwertować na txt: libreoffice --invisible --convert-to txt: Pliki tekstowe
Gagaro
0

Możesz użyć CUPS (drukarka wirtualna) i za pomocą ld.

ukanth
źródło
Ciekawe, czy można przekonwertować dowolne materiały do ​​wydruku do formatu PDF? Czy możesz wskazać mi i zrobić przykład dla Doc lub Xls?
Phyo Arkar Lwin
0

wv jest jedną z opcji, a IIRC OpenOffice można powiedzieć z wiersza poleceń, aby wyeksportować jako pdf i wyjść.

ptman
źródło
unoconv wydaje się być narzędziem związanym z OpenOffice, którego nie pamiętałem.
ptman
0

1.doc catdoc lub antiword do konwersji plików doc, możesz użyć następującego polecenia catdoc file.doc> plik lub plik antiword.doc> plik

  1. docx docx2txt

  2. plik pdf emacs.pdf plik ctrl-x ctrl-s

Linuxant
źródło
(1) Catdoc zaproponowano w odpowiedzi, która została opublikowana w ciągu godziny od pytania, prawie trzy lata temu. Dlaczego to powtarzasz? (2) Gdzie można uzyskać anty -ord? (3) Co oznacza dolna połowa twojej odpowiedzi?
Scott
-1

Docsplit to idealne narzędzie do wydobywania tekstu z pdf. To rubinowy klejnot. Dlatego powinieneś zainstalować ruby ​​i klejnot w systemie Linux przed użyciem polecenia docsplit.

Jeśli twój system nie ma rubinu i klejnotu, postępuj zgodnie z instrukcją.

Musisz być rootem, aby zainstalować oprogramowanie (zakładając, że chcesz, aby było ono dostępne dla wszystkich użytkowników).

Zainstaluj ruby ​​na Linuksie: mniam zainstaluj ruby
Zainstaluj klejnot, pobierz najnowszy pakiet klejnotów, a następnie postępuj zgodnie z instrukcjami

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

Teraz, gdy RubyGems jest zainstalowany, powinieneś mieć polecenie gem (gem to polecenie używane do interakcji z systemem pakietów RubyGems). Przetestuj to, uruchamiając:

lista klejnotów

Teraz przejdź do następnego kroku, aby zainstalować klejnot docsplit, przejdź do następującej witryny. http://documentcloud.github.com/docsplit/

Pan Black
źródło
Jest to dokładne przeciwieństwo tego, o co prosił PO.
CarlF