我目前正在使用 OpenOffice 宏和 pdf2text 程序的组合来提取文本,并希望找到一种更简单、更有效的方法来从 PowerPoint 文件中提取文本。
我尝试使用 Apache POI 库,但运气不佳,在尝试处理我正在查看的文件时遇到了库中的许多异常,并且不想特别筛选库的源代码。
有没有一种简单的方法可以在不使用上述库的情况下做到这一点?
我目前正在使用 OpenOffice 宏和 pdf2text 程序的组合来提取文本,并希望找到一种更简单、更有效的方法来从 PowerPoint 文件中提取文本。
我尝试使用 Apache POI 库,但运气不佳,在尝试处理我正在查看的文件时遇到了库中的许多异常,并且不想特别筛选库的源代码。
有没有一种简单的方法可以在不使用上述库的情况下做到这一点?
如果您有 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 来尝试这些。
pptx 文件相对容易处理,因为它们只是压缩的 xml - 您可以解压缩它们,然后从解压缩文件的 'ppt/slides' 子目录中的文件内容中删除所有 xml 标签,从而产生大部分相关的文字。
ppt 文件完全是另一回事,而且这个过程变得更加痛苦,因为来自 catdoc 包的规范工具 catppt 容易受到缓冲区溢出的影响,这使得它几乎无用(它在很大比例的 ppt 文件上存在段错误)。
LibreOffice-5 文件 - 导出 - HTML 包括幻灯片内容和演示者备注。然后,在 Firefox 或其他浏览器中打开 .html 文件,然后打开文件 - 将页面另存为 - 文本文件(或实用程序,例如pandoc -o file.txt file.html
)。