Api 是否从PowerPoint(.ppt或.pptx)文件中提取文本?

Api 是否从PowerPoint(.ppt或.pptx)文件中提取文本?,api,powerpoint,text-extraction,Api,Powerpoint,Text Extraction,我目前正在使用OpenOffice宏和pdf2text程序的组合来提取文本,并希望找到一种更简单、更有效的方法从PowerPoint文件中提取文本 我曾经尝试过使用ApachePOI库,但运气不太好,在尝试处理我正在查看的文件时,在库中遇到了许多异常,我不想特别仔细检查库的源代码 有没有一种不使用前面提到的库就可以轻松做到这一点的方法?如果您使用MS Office并以RTF(富文本格式)保存PPT,它只包含演示文稿中的文本。然后,您可以在任何理解RTF文件的编辑器中打开该文件,并将其保存为文本(

我目前正在使用OpenOffice宏和pdf2text程序的组合来提取文本,并希望找到一种更简单、更有效的方法从PowerPoint文件中提取文本

我曾经尝试过使用ApachePOI库,但运气不太好,在尝试处理我正在查看的文件时,在库中遇到了许多异常,我不想特别仔细检查库的源代码


有没有一种不使用前面提到的库就可以轻松做到这一点的方法?

如果您使用MS Office并以RTF(富文本格式)保存PPT,它只包含演示文稿中的文本。然后,您可以在任何理解RTF文件的编辑器中打开该文件,并将其保存为文本(TXT)文件

我希望这在开放式办公室也能奏效

既然你谈到了API,这可能不是你要走的路,但也许它会给你新的想法。比如说,您使用多个宏分阶段进行转换

编辑:我很好奇,做了一个简短的谷歌搜索

这是我在网上找到的

正如本文中的人所指出的,从OO检索文本 文档并不难,因为它只是压缩的xml,可以用 perl脚本。问题是如何将Microsoft Powerpoint文档导入到 首先是压缩的XML格式

我发现文件->向导->文档转换器正是这样做的。 只要告诉它你想转换Powerpoint文档,而不是模板, 将它指向您的源目录,并指向您希望它吐出数据的位置 结果你就走了

然后我找到unzip-p$file.sxi content.xml | perl-p-e “s/]>/\n/g;s/+/;s/\n\n/\n/g;”-w

在提取文本时效果相当好


很抱歉,我手头没有Open Office来尝试任何一种方法。

pptx文件相对容易处理,因为它们只是压缩的xml—您可以将它们解压缩,然后从解压缩内容的“ppt/slides”子目录中的文件内容中删除所有xml标记,从而生成大部分相关文本


ppt文件是另一种游戏,这个过程变得更加痛苦,因为规范化工具catdoc包中的catppt容易受到缓冲区溢出的影响,这使得它几乎毫无用处(它在很大一部分ppt文件上会出错).

LibreOffice-5文件-导出-HTML包括幻灯片内容和演示者备注。
然后,在Firefox或其他浏览器中打开.html文件,将页面另存为文本文件(或实用程序,如
pandoc-o file.txt file.html
)。

另存为RTF不起作用。它似乎只保存了文件中幻灯片的索引。我在第一次替换中需要一个通配符:
s/]*>/\n/g
。还使用多行修饰符将最后一个替换项更新为
s/^(\s*\r?\n){2,}/\n/gm
,并允许根据答案和注释返回可选的回车符。为了澄清,解压
+
perl
配方同时生成幻灯片内容和演示者备注(我需要),而不仅仅是幻灯片文本(可以在GUI LibreOffice:View-Outline中获得)。