PHPにおけるプレゼンテーションからの高度なテキスト抽出

スライドからテキストを抽出

Aspose.Slides for PHP via Java はSlideUtilクラスを提供します。このクラスは、プレゼンテーションまたはスライド全体のテキストを抽出するための多数のオーバーロードされた静的メソッドを公開しています。PPTX プレゼンテーションのスライドからテキストを抽出するには、getAllTextBoxesオーバーロードされた静的メソッドを使用します。このメソッドは Slide オブジェクトをパラメーターとして受け取ります。実行すると、Slide メソッドはパラメーターとして渡されたスライドのテキスト全体をスキャンし、TextFrameオブジェクトの配列を返します。これにより、テキストに関連付けられた書式情報も取得できます。次のコードはプレゼンテーションの最初のスライド上のすべてのテキストを抽出します。

  # PPTX ファイルを表す Presentation クラスのインスタンスを生成
  $pres = new Presentation("demo.pptx");
  $Array = new java_class("java.lang.reflect.Array");
  try {
    foreach($pres->getSlides() as $slide) {
      # PPTX のすべてのスライドから ITextFrame オブジェクトの配列を取得
      $textFramesPPTX = SlideUtil->getAllTextBoxes($slide);
      # TextFrame の配列をループ処理
      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();
  }

プレゼンテーションからテキストを抽出

プレゼンテーション全体のテキストをスキャンするには、SlideUtil クラスが公開しているgetAllTextFrames静的メソッドを使用します。このメソッドは 2 つのパラメーターを受け取ります。

  1. 最初に、テキストを抽出する対象のプレゼンテーションを表すPresentationオブジェクト。
  2. 次に、プレゼンテーションからテキストをスキャンする際にマスタースライドを含めるかどうかを決定するブール値。

このメソッドは、書式情報を含むTextFrameオブジェクトの配列を返します。以下のコードは、マスタースライドを含むプレゼンテーションからテキストと書式情報をスキャンします。

  # PPTX ファイルを表す Presentation クラスのインスタンスを作成
  $pres = new Presentation("demo.pptx");
  $Array = new java_class("java.lang.reflect.Array");
  try {
    # PPTX のすべてのスライドから ITextFrame オブジェクトの配列を取得
    $textFramesPPTX = SlideUtil->getAllTextFrames($pres, true);
    # TextFrame の配列をループ処理
    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 が追加されました。このメソッドには 3 つのオーバーロードがあります。


FAQ

テキスト抽出時に Aspose.Slides は大規模なプレゼンテーションをどれくらい高速に処理しますか?

Aspose.Slides は高性能に最適化されており、large presentationsでも効率的に処理でき、リアルタイムまたはバルク処理のシナリオに適しています。

Aspose.Slides はプレゼンテーション内のテーブルやチャートからテキストを抽出できますか?

はい、Aspose.Slides はテーブル、チャート、その他の複雑なスライド要素からのテキスト抽出を完全にサポートしており、すべてのテキストコンテンツに簡単にアクセスして分析できます。

プレゼンテーションからテキストを抽出するために特別な Aspose.Slides ライセンスが必要ですか?

Aspose.Slides の無料トライアル版でもテキストを抽出できますが、スライド数に制限などの制約があります。制限のない使用や大規模なプレゼンテーションを処理するには、フルライセンスの購入が推奨されます。