您可能會發現自己處於必須將 PowerPoint 文件的文本保存到數據庫或某個文件的場景中。手動執行此任務將耗時且效率低下。更好的方法是以編程方式進行提取。為此,本文將教您如何使用 C++ 從 PowerPoint 文件中提取文本。
從 PowerPoint 文件中提取文本的 C++ API
Aspose.Slides for C++ 是一個原生 C++ 庫,可幫助您自動執行與 PowerPoint 相關的任務。 API 支持創建、閱讀和修改 PowerPoint 演示文稿。此外,API 還使您能夠從 PowerPoint 文件中提取文本。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。
PM> Install-Package Aspose.Slides.Cpp
使用 C++ 從 PowerPoint 幻燈片中提取文本
以下是從 PowerPoint 幻燈片中提取文本的步驟。
- 首先,使用 Presentation 類加載 PowerPoint 演示文稿。
- 使用 SlideUtil::GetAllTextBoxes (System::SharedPtr幻燈片) 方法。
- 循環遍歷文本框。
- 在循環中,使用 ITextFrame->getParagraphs() 方法訪問段落。
- 循環段落並使用 IParagraph->getPortions() 方法訪問這些部分。
- 使用 IPortion->getText() 方法從每個部分檢索文本。
以下是使用 C++ 從 PowerPoint 幻燈片中提取文本的示例代碼。
// 示例文件路徑
const String sourceFilePath = u"SourceDirectory\\SamplePresentation.pptx";
// 加載演示文稿文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 從第一張幻燈片中獲取 ITextFrame 對像數組
System::ArrayPtr<SharedPtr<ITextFrame>> textFramesSlideOne = SlideUtil::GetAllTextBoxes(presentation->get_Slides()->idx_get(0));
// 遍歷 TextFrames 數組
for (int i = 0; i < textFramesSlideOne->get_Length(); i++)
{
// 循環遍歷當前 ITextFrame 中的段落
for (SharedPtr<IParagraph> paragraph : textFramesSlideOne[i]->get_Paragraphs())
{
// 遍歷當前 IParagraph 中的部分
for (SharedPtr<IPortion> portion : paragraph->get_Portions())
{
// 顯示文字
Console::WriteLine(portion->get_Text());
}
}
}
使用 C++ 從 PowerPoint 演示文稿中提取文本
以下是從 PowerPoint 演示文稿中提取文本的步驟。
- 首先,使用 Presentation 類加載 PowerPoint 演示文稿。
- 使用 SlideUtil::GetAllTextFrames (System::SharedPtr pres, bool withMasters) 方法。
- 循環遍歷文本框。
- 在循環中,使用 ITextFrame->getParagraphs() 方法訪問段落。
- 循環段落並使用 IParagraph->getPortions() 方法訪問這些部分。
- 使用 IPortion->getText() 方法從每個部分檢索文本。
以下是使用 C++ 從 PowerPoint 演示文稿中提取文本的示例代碼。
// 示例文件路徑
const String sourceFilePath = u"SourceDirectory\\SamplePresentation.pptx";
// 加載演示文稿文件
SharedPtr<Presentation> presentation = MakeObject<Presentation>(sourceFilePath);
// 從演示文稿中的所有幻燈片獲取 ITextFrame 對像數組
System::ArrayPtr<SharedPtr<ITextFrame>> textFramesPresentation = SlideUtil::GetAllTextFrames(presentation, true);
// 遍歷 TextFrames 數組
for (int i = 0; i < textFramesPresentation->get_Length(); i++)
{
// 循環遍歷當前 ITextFrame 中的段落
for (SharedPtr<IParagraph> paragraph : textFramesPresentation[i]->get_Paragraphs())
{
// 遍歷當前 IParagraph 中的部分
for (SharedPtr<IPortion> portion : paragraph->get_Portions())
{
// 顯示文字
Console::WriteLine(portion->get_Text());
}
}
}
獲得免費許可證
您可以申請 免費的臨時許可證 來試用 API,而沒有評估限制。
結論
在本文中,您學習瞭如何使用 C++ 從 PowerPoint 文件中提取文本。具體來說,您已經學習瞭如何從特定的 PowerPoint 幻燈片或整個 PowerPoint 演示文稿中提取文本。 Aspose.Slides for C++ 提供了一系列用於處理演示文稿的附加功能。您可以通過訪問 官方文檔 來詳細探索 API。如有任何疑問,請隨時通過 免費支持論壇 與我們聯繫。