6

Есть ли какие-либо инструменты Linux, которые будут извлекать текст из файла PowerPoint pptx? Я попытался catppt, но он просто возвращает file.pptx is not OLE file or Error . abiword --to=txt file.pptx также возвращает пустой текстовый файл.

Я могу открыть файл в libreoffice, но в нем нет опции "экспортировать как текст". В качестве предположения я также попробовал libreoffice --headless --convert-to txt:Text file.pptx но он даже не возвращает пустой файл.

5 ответов5

11

Если вы можете обрабатывать файлы в bash , этот однострочный файл распакует весь текст:

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

Просто передайте ему файл pptx как $1 , и он запишет текст в файл $2 . Содержимое каждого слайда не будет отображаться в порядке представления, и не будет никаких меток или чего-либо еще, поэтому вам потребуется еще несколько строк сценария и временный каталог, чтобы получить более читаемый список.

2

Поскольку у вас установлен Abiword, вы можете сначала сделать PDF

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

А затем используйте abiword для преобразования PDF в TXT

abiword --to=txt filename.pdf 
1

Если вы добавите .zip в конец имени файла (то есть Presentation1.pptx.zip), вы можете разархивировать документ и просмотреть его отдельные компоненты.

В этом результирующем zip-файле есть следующий каталог \Presentation1.pptx.zip\ppt\slides . Это связывает .xml файлы, названные в честь каждого отдельного слайда. Если вы откроете один из этих файлов, вы увидите, что любой введенный текст обернут в теги <a:t> .

Например: <a:t>TEST</a:t>

Насколько я могу вам помочь, но, надеюсь, этого достаточно.

РЕДАКТИРОВАТЬ: Как примечание, тот же процесс работает и для документов Word. Это очень полезно, если вам когда-нибудь понадобится извлечь изображения из документа Word.

0

Вы можете попробовать сохранить файл ppt в формате pdf, а затем использовать pdftotext для извлечения существующего текста. Конечно, весь текст, вложенный в цифры, теряется навсегда.

Кроме того, вы можете попробовать команду

 string filename

либо на PPT или PDF.

0

Если на вашем компьютере есть node.js, https://github.com/dbashford/textract может это сделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .