在 Linux 中从 powerpoint pptx 中提取文本的工具?

在 Linux 中从 powerpoint pptx 中提取文本的工具?

有没有任何 Linux 工具可以从 Powerpoint pptx 文件中提取文本?我尝试了 catppt,但它只返回file.pptx is not OLE file or Errorabiword --to=txt file.pptx还返回一个空文本文件。

我可以在 libreoffice 中打开该文件,但它似乎没有“导出为文本”选项。我猜我也试过了,libreoffice --headless --convert-to txt:Text file.pptx但那甚至没有返回一个空文件。

答案1

如果您可以处理中的文件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 

答案3

如果在文件名末尾添加 .zip(即Presentation1.pptx.zip),那么您可以解压缩该文档并查看其各个组件。

在此生成的 zip 文件中,有以下目录\Presentation1.pptx.zip\ppt\slides。此目录包含以每张幻灯片命名的 .xml 文件。如果您打开其中一个文件,您将看到任何输入的文本都包裹在<a:t>标签中。

例如:<a:t>TEST</a:t>

这就是我能帮助你的最大限度,但希望这足够了。

编辑:附注:同样的过程也适用于 Word 文档。如果您需要从 Word 文档中提取图像,它非常有用。

答案4

您可以尝试将 ppt 文件保存为 pdf 格式,然后使用 pdftotext 检索现有文本。当然,嵌入在图形中的所有文本都将永远丢失。

或者,您可以尝试命令

 string filename

在 ppt 或 pdf 上。

相关内容