1

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

我尝试使用 Apache POI 库,但运气不佳,在尝试处理我正在查看的文件时遇到了库中的许多异常,并且不想特别筛选库的源代码。

有没有一种简单的方法可以在不使用上述库的情况下做到这一点?

4

3 回答 3

2

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

我希望这也适用于 Open Office。

既然您谈到了 API,这可能不是适合您的方式,但也许它会给您带来新的想法。说,您使用多个宏分阶段进行转换......

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

这是我在 www.openoffice.org 页面之一上找到的

正如该线程中的人们所指出的,从 OO 文档中检索文本并不难,因为它只是可以用 perl 脚本解析的压缩 xml。问题在于首先将 Microsoft Powerpoint 文档转换为压缩的 XML 格式。

我发现 File -> Wizards -> Document Converter 正是这样做的。只需告诉它您要转换 Powerpoint 文档,而不是模板,将其指向您的源目录以及您希望它吐出结果的位置,然后您就离开了。

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

非常适合提取文本。

抱歉,我没有方便的 Open Office 来尝试这些。

于 2009-05-20T17:59:27.567 回答
1

pptx 文件相对容易处理,因为它们只是压缩的 xml - 您可以解压缩它们,然后从解压缩文件的 'ppt/slides' 子目录中的文件内容中删除所有 xml 标签,从而产生大部分相关的文字。

ppt 文件完全是另一回事,而且这个过程变得更加痛苦,因为来自 catdoc 包的规范工具 catppt 容易受到缓冲区溢出的影响,这使得它几乎无用(它在很大比例的 ppt 文件上存在段错误)。

于 2012-08-15T21:49:36.613 回答
0

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

于 2019-04-22T21:22:54.767 回答