Продвинутое извлечение текста из презентаций на 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. Он принимает два параметра:

  1. Во‑первых, объект Presentation , представляющий презентацию, из которой извлекается текст.
  2. Во‑вторых, булево значение, определяющее, включать ли главный слайд при сканировании текста презентации.
    Метод возвращает массив объектов 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, однако она имеет определённые ограничения, например, обработку только ограниченного количества слайдов. Для неограниченного использования и работы с более крупными презентациями рекомендуется приобрести полную лицензию.