Вам часто может понадобиться извлечь текст из слайдов PowerPoint, чтобы выполнить анализ текста. С другой стороны, вы можете извлечь и сохранить текст в файле или базе данных для дальнейшей обработки. В соответствии с этим в этой статье рассказывается, как извлечь текст из презентаций PowerPoint с помощью C#. В частности, вы узнаете, как извлекать текст из определенного слайда или всей презентации.
- API для извлечения текста из PowerPoint PPTX
- Извлечение текста из слайда PowerPoint
- Извлечение текста из презентации PowerPoint
- Получите бесплатную лицензию API
C# API для извлечения текста из PowerPoint PPTX
Для управления презентациями PowerPoint Aspose предлагает Aspose.Slides for .NET. Указанный API предназначен для реализации функций автоматизации PowerPoint в приложениях .NET. Он также предоставляет несколько простых способов извлечения текста из презентаций PPTX. Вы можете либо скачать API, либо установить его с помощью NuGet.
PM> Install-Package Aspose.Slides.NET
Извлечение текста из слайда PowerPoint в C#
Ниже приведены шаги для извлечения текста из слайда в презентации PowerPoint.
- Загрузите презентацию с помощью класса Presentation.
- Получить все текстовые фреймы со слайда в массив ITextFrame с помощью метода SlideUtil.GetAllTextBoxes().
- Прокрутите каждый ITextFrame и получите доступ к его тексту, используя свойство ITextFrame.Paragraphs.
- Получить и распечатать текст из каждой Части абзаца.
В следующем примере кода показано, как извлечь текст из слайда PowerPoint с помощью C#.
//Создайте класс PresentationEx, представляющий файл PPTX.
Presentation pptxPresentation = new Presentation("demo.pptx");
//Получить массив объектов TextFrameEx из первого слайда
ITextFrame[] textFramesSlideOne = SlideUtil.GetAllTextBoxes(pptxPresentation.Slides[0]);
//Перебрать массив TextFrames
for (int i = 0; i < textFramesSlideOne.Length; i++)
{
//Перебирать абзацы в текущем TextFrame
foreach (Paragraph para in textFramesSlideOne[i].Paragraphs)
{
//Перебирать части в текущем абзаце
foreach (Portion port in para.Portions)
{
//Отображать текст в текущей части
Console.WriteLine(port.Text);
//Отображать высоту шрифта текста
Console.WriteLine(port.PortionFormat.FontHeight);
//Показать название шрифта текста
Console.WriteLine(port.PortionFormat.LatinFont.FontName);
}
}
}
Извлечь текст из презентации PowerPoint на C#
Вы также можете извлечь текст из всей презентации PowerPoint, используя Aspose.Slides для .NET. Ниже приведены шаги для выполнения этой операции.
- Загрузите презентацию с помощью класса Presentation.
- Получить все текстовые фреймы в презентации с помощью метода SlideUtil.GetAllTextFrames().
- Прокрутите каждый ITextFrame и получите доступ к его Параграфам.
- Получите доступ к частям абзацев и распечатайте их текст.
В следующем примере кода показано, как извлечь текст из презентации PowerPoint.
//Создайте класс Presentation, представляющий файл PPTX.
Presentation pptxPresentation = new Presentation("demo.pptx");
//Получить массив объектов ITextFrame со всех слайдов в PPTX
ITextFrame[] textFramesPPTX = Aspose.Slides.Util.SlideUtil.GetAllTextFrames(pptxPresentation, true);
//Перебрать массив TextFrames
for (int i = 0; i < textFramesPPTX.Length; i++)
{
//Перебирать абзацы в текущем ITextFrame
foreach (IParagraph para in textFramesPPTX[i].Paragraphs)
{
//Перебирать части в текущем IPagraph
foreach (IPortion port in para.Portions)
{
//Отображать текст в текущей части
Console.WriteLine(port.Text);
//Отображать высоту шрифта текста
Console.WriteLine(port.PortionFormat.FontHeight);
//Показать название шрифта текста
if (port.PortionFormat.LatinFont != null)
Console.WriteLine(port.PortionFormat.LatinFont.FontName);
}
}
}
Получите бесплатную лицензию API
Если вы хотите попробовать API без ознакомительных ограничений, вы можете получить бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как извлекать текст из презентаций PowerPoint. В частности, вы видели, как извлечь текст из определенного слайда или всей презентации с помощью C#. Вы можете узнать больше об Aspose.Slides для .NET, используя документацию. Если у вас возникнут какие-либо вопросы или неясности, сообщите нам об этом через наш форум.