Продвинутое извлечение текста из презентаций на PHP
Извлечение текста со слайдов
Aspose.Slides for PHP via Java предоставляет класс SlideUtil. Этот класс раскрывает несколько перегруженных статических методов для извлечения полного текста из презентации или слайда. Чтобы извлечь текст со слайда в PPTX‑презентации, используйте перегруженный статический метод getAllTextBoxes , предоставляемый классом SlideUtil. Этот метод принимает объект Slide в качестве параметра. При выполнении метод Slide сканирует весь текст со слайда, переданного в качестве параметра, и возвращает массив объектов TextFrame . Это означает, что любое форматирование текста доступно. Следующий фрагмент кода извлекает весь текст с первого слайда презентации:
# Создайте экземпляр класса Presentation, представляющего файл PPTX
$pres = new Presentation("demo.pptx");
$Array = new java_class("java.lang.reflect.Array");
try {
foreach($pres->getSlides() as $slide) {
# Получить массив объектов ITextFrame со всех слайдов в PPTX
$textFramesPPTX = SlideUtil->getAllTextBoxes($slide);
# Итерировать массив TextFrames
for($i = 0; $i < java_values($Array->getLength($textFramesPPTX)) ; $i++) {
# Итерировать абзацы в текущем ITextFrame
foreach($textFramesPPTX[$i]->getParagraphs() as $para) {
# Итерировать части в текущем IParagraph
foreach($para->getPortions() as $port) {
# Отобразить текст в текущей части
echo($port->getText());
# Отобразить высоту шрифта текста
echo($port->getPortionFormat()->getFontHeight());
# Отобразить название шрифта текста
if (!java_is_null($port->getPortionFormat()->getLatinFont())) {
echo($port->getPortionFormat()->getLatinFont()->getFontName());
}
}
}
}
}
} finally {
$pres->dispose();
}
Извлечение текста из презентаций
Чтобы просканировать текст всей презентации, используйте статический метод getAllTextFrames , предоставляемый классом SlideUtil. Он принимает два параметра:
- Во‑первых, объект Presentation , представляющий презентацию, из которой извлекается текст.
- Во‑вторых, булево значение, определяющее, включать ли главный слайд при сканировании текста презентации.
Метод возвращает массив объектов TextFrame , содержащих информацию о форматировании текста. Приведённый ниже код сканирует текст и информацию о форматировании из презентации, включая главные слайды.
# Создать экземпляр класса Presentation, представляющего файл PPTX
$pres = new Presentation("demo.pptx");
$Array = new java_class("java.lang.reflect.Array");
try {
# Получить массив объектов ITextFrame со всех слайдов в PPTX
$textFramesPPTX = SlideUtil->getAllTextFrames($pres, true);
# Перебрать массив TextFrames
for($i = 0; $i < java_values($Array->getLength($textFramesPPTX)) ; $i++) {
# Перебрать абзацы в текущем ITextFrame
foreach($textFramesPPTX[$i]->getParagraphs() as $para) {
# Перебрать части в текущем IParagraph
foreach($para->getPortions() as $port) {
# Отобразить текст в текущей части
echo($port->getText());
# Отобразить высоту шрифта текста
echo($port->getPortionFormat()->getFontHeight());
# Отобразить название шрифта текста
if (!java_is_null($port->getPortionFormat()->getLatinFont())) {
echo($port->getPortionFormat()->getLatinFont()->getFontName());
}
}
}
}
} finally {
$pres->dispose();
}
Категоризированное и быстрое извлечение текста
В класс Presentation добавлен новый статический метод getPresentationText. У этого метода три перегрузки:
FAQ
Насколько быстро Aspose.Slides обрабатывает большие презентации при извлечении текста?
Aspose.Slides оптимизирован для высокой производительности и эффективно обрабатывает даже большие презентации, что делает его подходящим для сценариев реального времени или пакетной обработки.
Может ли Aspose.Slides извлекать текст из таблиц и диаграмм в презентациях?
Да, Aspose.Slides полностью поддерживает извлечение текста из таблиц, диаграмм и других сложных элементов слайда, позволяя легко получать и анализировать весь текстовый контент.
Нужна ли специальная лицензия Aspose.Slides для извлечения текста из презентаций?
Вы можете извлекать текст с помощью бесплатной пробной версии Aspose.Slides, однако она имеет определённые ограничения, например, обработку только ограниченного количества слайдов. Для неограниченного использования и работы с более крупными презентациями рекомендуется приобрести полную лицензию.