您可能經常需要從 PowerPoint 幻燈片中提取文本以執行文本分析。另一方面,您可能希望提取文本並將其保存在文件或數據庫中以供進一步處理。據此,本文介紹瞭如何使用 Java 從 PowerPoint 演示文稿中提取文本。特別是,您將學習如何從特定幻燈片或整個演示文稿中提取文本。
從 PowerPoint PPTX 中提取文本的 Java API
為了操作 PowerPoint 演示文稿,Aspose 提供了 Aspose.Slides for Java。所述 API 旨在在 Java 應用程序中實現 PowerPoint 自動化功能。它還提供了一些從 PPT/PPTX 演示文稿中提取文本的簡單方法。您可以 下載 API 或使用以下 Maven 配置安裝它。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.7</version>
<classifier>jdk16</classifier>
</dependency>
從 Java 中的 PowerPoint 幻燈片中提取文本
以下是使用 Java 從 PowerPoint 演示文稿的幻燈片中提取文本的步驟。
- 使用 Presentation 類加載演示文稿。
- 使用 SlideUtil.getAllTextBoxes() 方法將幻燈片中的所有文本框放入 ITextFrame 數組。
- 遍歷每個 ITextFrame 並使用 ITextFrame.getParagraphs() 方法訪問其文本。
- 從段落的每個 IPortion 中檢索並打印文本。
以下代碼示例顯示如何從 PowerPoint 幻燈片中提取文本。
//實例化表示 PPTX 文件的 PresentationEx 類
Presentation pptxPresentation = new Presentation("presentation.pptx");
//從第一張幻燈片中獲取 ITextFrame 對像數組
ITextFrame[] textFramesSlideOne = SlideUtil.getAllTextBoxes(pptxPresentation.getSlides().get_Item(1));
//遍歷 TextFrames 數組
for (int i = 0; i < textFramesSlideOne.length; i++)
{
//循環遍歷當前 TextFrame 中的段落
for (IParagraph para : textFramesSlideOne[i].getParagraphs())
{
//遍歷當前段落中的部分
for (IPortion port : para.getPortions())
{
//在當前部分顯示文本
System.out.println(port.getText());
//顯示文本的字體高度
System.out.println(port.getPortionFormat().getFontHeight());
//顯示文本的字體名稱
System.out.println(port.getPortionFormat().getLatinFont().getFontName());
}
}
}
從整個 PowerPoint 演示文稿中提取文本
您還可以從整個 PowerPoint 演示文稿中提取文本。以下是執行此操作的步驟。
- 使用 Presentation 類加載演示文稿。
- 使用 SlideUtil.getAllTextFrames() 方法獲取演示文稿中的所有文本框。
- 遍歷每個 ITextFrame 並訪問其段落。
- 訪問段落的各個部分並打印其文本。
以下代碼示例顯示如何從 PowerPoint 演示文稿中提取文本。
//實例化表示 PPTX 文件的 PresentationEx 類
Presentation pptxPresentation = new Presentation("presentation.pptx");
//從第一張幻燈片中獲取 ITextFrame 對像數組
ITextFrame[] textFrames = SlideUtil.getAllTextFrames(pptxPresentation, true);
//遍歷 TextFrames 數組
for (int i = 0; i < textFrames.length; i++)
{
//循環遍歷當前 TextFrame 中的段落
for (IParagraph para : textFrames[i].getParagraphs())
{
//遍歷當前段落中的部分
for (IPortion port : para.getPortions())
{
//在當前部分顯示文本
System.out.println(port.getText());
}
}
}
獲取免費的 API 許可證
如果您想不受評估限制地使用 API,您可以獲得免費的臨時許可證。
在線試用
您也可以嘗試使用 Aspose.Slides 開發的免費在線演示文稿解析器。
結論
在本文中,您學習瞭如何使用 Java 從 PowerPoint 演示文稿中提取文本。代碼示例展示瞭如何從特定幻燈片或整個演示文稿中提取文本。您可以使用 文檔 探索更多關於 Aspose.Slides for Java 的信息。如果您有任何疑問,請通過我們的 論壇 告知我們。