Tools zum Extrahieren von Text aus PowerPoint Pptx in Linux?

6

Gibt es irgendwelche Linux-Tools, die den Text aus einer Powerpoint-Pptx-Datei extrahieren? Ich habe versucht, catppt, aber es kehrt gerade zurück file.pptx is not OLE file or Error. abiword --to=txt file.pptxGibt auch eine leere Textdatei zurück.

Ich kann die Datei in libreoffice öffnen, aber es scheint keine Option zum "Exportieren als Text" zu geben. Vermutlich habe ich es auch versucht, libreoffice --headless --convert-to txt:Text file.pptxaber das gibt nicht einmal eine leere Datei zurück.

felix
quelle
Versuchte auch, Text zu bearbeiten, und es war nichts drin. Behauptet, dass die Datei auch gesperrt ist. Ich frage mich, ob es eine proprietäre Sache ist, die Microsoft implementiert hat
Simon Sheehan

Antworten:

11

Wenn Sie die Dateien in verarbeiten können bash, entpackt dieser Einzeiler den gesamten Text:

unzip -qc "$1" ppt/slides/slide*.xml | grep -oP '(?<=\<a:t\>).*?(?=\</a:t\>)'

Übergeben Sie einfach die pptx-Datei als $1, und der Text wird in die Datei geschrieben $2. Der Inhalt jeder Folie wird nicht in Präsentationsreihenfolge angezeigt, und es werden keine Beschriftungen oder ähnliches angezeigt. Sie benötigen daher ein paar weitere Skriptzeilen und ein temporäres Verzeichnis, um eine besser lesbare Liste zu erhalten.

Byron Hawkins
quelle
Ich habe eine Weile nach Binärdateien und Perl-Skripten gesucht und diese Antwort ist so einfach und effektiv. Ich bin nur auf der Suche nach einem einfachen Text-Dump von Folien, nichts Besonderes, und das macht es perfekt. Ich wünschte, ich könnte mehr +1 geben!
Chris Haas
Wenn Sie sich fragen, woher Sie diese XML-Dateien beziehen, entpacken Sie einfach die pptx-Datei und Sie finden die XML-Datei für jede Folie in ppt / slide / slide * .xml
Uhr
2

Da Sie Abiword installiert haben, können Sie zuerst ein PDF erstellen

libreoffice --headless --convert-to pdf filename.pptx

Verwenden Sie dann abiword, um das PDF in txt zu konvertieren

abiword --to=txt filename.pdf 
Kriegsgesicht
quelle
1

Wenn Sie am Ende des Dateinamens .zip hinzufügen Presentation1.pptx.zip, können Sie das Dokument entpacken und die einzelnen Komponenten anzeigen.

In dieser resultierenden Zip-Datei befindet sich das folgende Verzeichnis \Presentation1.pptx.zip\ppt\slides. Diese Datei enthält XML-Dateien, die nach jeder einzelnen Folie benannt sind. Wenn Sie eine dieser Dateien öffnen, werden Sie feststellen, dass der eingegebene Text in <a:t>Tags eingeschlossen ist.

Zum Beispiel: <a:t>TEST</a:t>

Das ist soweit ich dir helfen kann, aber hoffentlich ist es genug.

BEARBEITEN: Als Randnotiz gilt der gleiche Vorgang auch für Word-Dokumente. Dies ist sehr nützlich, wenn Sie Bilder aus einem Word-Dokument extrahieren müssen.

Michael Frank
quelle
0

Sie können versuchen, die ppt-Datei im PDF-Format zu speichern, und dann pdftotext verwenden, um vorhandenen Text abzurufen. Natürlich ist der gesamte in Zahlen eingebettete Text für immer verloren.

Alternativ können Sie den Befehl versuchen

 string filename

entweder auf dem ppt oder dem pdf.

MariusMatutiae
quelle