我首先解释一下我的困境:我有几千个powerpoint文件(.ppt),我需要提取文本。问题是这些文本在文件中是杂乱无章的,当作为一个完整的页面阅读时,它对我所需要的东西毫无意义(在例子中,它将读作:第1行,第3行,第2行,第4行,第5行)。
我使用的是 tika
读取文件。然后我想,如果我转换为pdf,使用 glob
和 win32com.client
我的运气会好一些,但基本上是一样的结果。这里的图片是文字的例子。
所以现在我的想法是,如果我可以按像素位置对pdf或ppt进行分割(如果需要的话,可以保存到单独的临时文件中,打开后用这种方式阅读),我就可以保持东西的顺序,得到我需要的东西。虽然文本在每个框内移动,但黑色的轮廓框总是大致在同一个位置。
但我找不到任何东西来分割一个单独的pdf页面,只能将多个页面分割成一个页面。有谁知道如何去做这件事吗?
我需要把第一框中的文字一起读出来(第1行和第2行),然后加载到字典或其他容器中,第二框也是如此。作为参考,powerpoint中只有一张幻灯片。
请允许我提供答案作为一般指导:.ppt和.pptx文件都是美化过的.zip文件.使用7-zip或WinZip打开.pptx并了解其结构.将它们转换为.pptx文件.现在每张幻灯片都应该有一个.xml文件,里面充满了你可以解析的标签.例如,你会发现每个文本框的标签,里面嵌套着该框文本的标签。
另外。python-pptx
通过调整这段VBA代码进行大规模转换。VBA的链接
或使用PowerShell。[PowerShell]的链接