Расширенное извлечение текста из презентаций на Java
Извлечение текста со слайдов
Aspose.Slides для Java предоставляет класс SlideUtil. Этот класс предоставляет несколько перегруженных статических методов для извлечения всего текста из презентации или слайда. Чтобы извлечь текст со слайда в PPTX‑презентации, используйте перегруженный статический метод getAllTextBoxes класса SlideUtil. Этот метод принимает объект Slide в качестве параметра.
При выполнении метод Slide сканирует весь текст со слайда, переданного в качестве параметра, и возвращает массив объектов TextFrame. Это означает, что доступно любое форматирование текста. Ниже приведён фрагмент кода, который извлекает весь текст с первого слайда презентации:
//Создать экземпляр класса Presentation, представляющего файл PPTX
Presentation pres = new Presentation("demo.pptx");
try {
for (ISlide slide : pres.getSlides())
{
//Получить массив объектов ITextFrame со всех слайдов PPTX
ITextFrame[] textFramesPPTX = SlideUtil.getAllTextBoxes(slide);
//Перебрать массив TextFrames
for (int i = 0; i < textFramesPPTX.length; i++) {
//Перебрать абзацы в текущем ITextFrame
for (IParagraph para : textFramesPPTX[i].getParagraphs()) {
//Перебрать части (portions) в текущем IParagraph
for (IPortion port : para.getPortions()) {
//Отобразить текст текущей части
System.out.println(port.getText());
//Отобразить высоту шрифта текста
System.out.println(port.getPortionFormat().getFontHeight());
//Отобразить название шрифта текста
if (port.getPortionFormat().getLatinFont() != null)
System.out.println(port.getPortionFormat().getLatinFont().getFontName());
}
}
}
}
} finally {
pres.dispose();
}
Извлечение текста из презентаций
Чтобы просканировать текст всей презентации, используйте статический метод getAllTextFrames класса SlideUtil. Он принимает два параметра:
- Во‑первых, объект Presentation, представляющий презентацию, из которой извлекается текст.
- Во‑вторых, логическое значение, определяющее, следует ли включать мастер‑слайд при сканировании текста презентации.
Метод возвращает массив объектов TextFrame с полной информацией о форматировании текста. Ниже приведён код, который сканирует текст и информацию о форматировании из презентации, включая мастер‑слайды.
//Создать экземпляр класса Presentation, который представляет файл PPTX
Presentation pres = new Presentation("demo.pptx");
try {
//Получить массив объектов ITextFrame со всех слайдов PPTX
ITextFrame[] textFramesPPTX = SlideUtil.getAllTextFrames(pres, true);
//Перебрать массив TextFrames
for (int i = 0; i < textFramesPPTX.length; i++)
{
//Перебрать абзацы в текущем ITextFrame
for (IParagraph para : textFramesPPTX[i].getParagraphs())
{
//Перебрать части (portions) в текущем IParagraph
for (IPortion port : para.getPortions())
{
//Отобразить текст текущей части
System.out.println(port.getText());
//Отобразить высоту шрифта текста
System.out.println(port.getPortionFormat().getFontHeight());
//Отобразить название шрифта текста
if (port.getPortionFormat().getLatinFont() != null)
System.out.println(port.getPortionFormat().getLatinFont().getFontName());
}
}
}
} finally {
pres.dispose();
}
Категоризированное и быстрое извлечение текста
В класс Presentation добавлен новый статический метод getPresentationText. У этого метода три перегрузки:
public IPresentationText getPresentationText(String file, int mode);
public IPresentationText getPresentationText(InputStream stream, int mode);
public IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options);
FAQ
Насколько быстро Aspose.Slides обрабатывает большие презентации при извлечении текста?
Aspose.Slides оптимизирован для высокой производительности и эффективно обрабатывает даже large presentations, что делает его подходящим для сценариев обработки в реальном времени или пакетной обработки.
Может ли Aspose.Slides извлекать текст из таблиц и диаграмм в презентациях?
Да, Aspose.Slides полностью поддерживает извлечение текста из таблиц, диаграмм и других сложных элементов слайдов, позволяя легко получать и анализировать весь текстовый контент.
Нужна ли мне специальная лицензия Aspose.Slides для извлечения текста из презентаций?
Вы можете извлекать текст с помощью бесплатной пробной версии Aspose.Slides, хотя она имеет ограничения, например обработку только ограниченного количества слайдов. Для неограниченного использования и работы с более крупными презентациями рекомендуется приобрести полную лицензию.