PHPでプレゼンテーションを作成する

概要

この記事では、Aspose.Slidesでプレゼンテーションを作成し、最初のスライドにテキスト ボックスを追加して結果をファイルとして保存する方法を示します。また、空のプレゼンテーションを作成して保存する方法、およびサポートされている形式の既存プレゼンテーションを開いて別の形式で保存する方法も示します。最後の短い FAQ では、形式、テンプレート、スライドサイズ、単位、メモリ使用量、スレッド、ライセンス、デジタル署名、VBA のサポートに関する一般的な質問をカバーしています。

開始する前に、Composer を使用して PHP 用 Aspose.Slides for Java をインストールし、Apache Tomcat で PHP/Java Bridge を起動してください。完全なセットアップについては Installation を参照してください。以下の例は、Tomcat が localhost:8080 で実行されており、Composer の vendor フォルダーがスクリプトの隣にあることを前提としています。

PowerPoint プレゼンテーションの作成

プレゼンテーションを作成し、最初のスライドにテキスト ボックスを配置するには、次の手順に従います:

  1. Presentation クラスのインスタンスを作成します。新しいプレゼンテーションにはすでに空のスライドが 1 枚含まれています。
    Presentation
  2. インデックス 0 で、Presentation::getSlides が返すコレクションからそのスライドを取得します。
    Presentation::getSlides
  3. ShapeCollection::addAutoShape メソッドで矩形を追加し、TextFrame::setText でテキストを設定します。
    ShapeCollection::addAutoShape
    TextFrame::setText
  4. Presentation::save メソッドでプレゼンテーションを PPTX ファイルとして保存します。
    Presentation::save
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ja/lib/aspose.slides.php");

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;

$presentation = new Presentation();
try {
    $slide = $presentation->getSlides()->get_Item(0);
    $shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 400, 100);
    $shape->getTextFrame()->setText("Hello, Aspose.Slides!");
    $presentation->save(__DIR__ . "/hello.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

2 つの require_once 行は、Tomcat から PHP/Java Bridge クライアントを、Composer パッケージから Aspose.Slides クラスをロードします。矩形の左上隅はスライドの左端から 50 ポイント、上端から 50 ポイントの位置にあり、幅が 400 ポイント、高さが 100 ポイントです。保存されたファイルには、その矩形とテキストを含むスライドが 1 枚含まれます。ライセンスがない場合、Aspose.Slides は保存するすべてのスライドに評価用の透かしを追加します。詳細は Licensing を参照してください。

プレゼンテーションの作成と保存

空のプレゼンテーションを作成して保存するには、Presentation クラスのインスタンスを作成し、SaveFormat 列挙体の任意の形式で保存します。結果として、空のスライドが 1 枚含まれるプレゼンテーションが得られます。

<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ja/lib/aspose.slides.php");

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation();
try {
    $presentation->save(__DIR__ . "/OutputPresentation.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

プレゼンテーションの開き方と保存

プレゼンテーションを別の形式に変換するには、パスを Presentation コンストラクタに渡して開き、目的の形式で保存します。Aspose.Slides はファイル自体から PPT、PPTX、ODP などの入力形式を検出します。

以下の例は、スクリプトの隣にある Sample.odp という名前の OpenDocument プレゼンテーションを対象とし、PPTX として保存します。

<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ja/lib/aspose.slides.php");

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation(__DIR__ . "/Sample.odp");
try {
    $presentation->save(__DIR__ . "/OutputPresentation.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

よくある質問

新しいプレゼンテーションを保存できる形式は何ですか?

PPTX, PPT, and ODP に保存でき、PDF、XPS、HTML、SVG、および images などにもエクスポートできます。

テンプレート (POTX/POTM) から開始して通常の PPTX として保存できますか?

はい。テンプレートをロードし、目的の形式で保存します。POTX/POTM/PPTM などの形式は are supported です。

プレゼンテーション作成時にスライドのサイズ/アスペクト比をどのように制御しますか?

slide size を設定します(4:3 や 16:9 のプリセット、またはカスタム寸法を含む)。そして、コンテンツのスケーリング方法を選択します。

サイズや座標はどの単位で測定されますか?

ポイント単位です。1 インチは 72 ユニットに相当します。

多数のメディアファイルを含む非常に大きなプレゼンテーションでメモリ使用量を削減するにはどうすればよいですか?

BLOB management strategies を使用し、一時ファイルを活用してメモリ内ストレージを制限し、純粋なインメモリ ストリームよりもファイルベースのワークフローを優先します。

プレゼンテーションを並行して作成/保存できますか?

同じ Presentation インスタンスに対して multiple threads から操作することはできません。スレッドまたはプロセスごとに個別のインスタンスを実行してください。

評価版の透かしと制限を削除するには?

Apply a license をプロセスごとに一度実行します。ライセンス XML は変更せずに保持し、複数のスレッドが関与する場合はライセンス設定を同期させる必要があります。

作成した PPTX にデジタル署名できますか?

はい。プレゼンテーションでは、Digital signatures(追加および検証)がサポートされています。

作成されたプレゼンテーションでマクロ (VBA) はサポートされていますか?

はい。create/edit VBA projects が可能で、PPTM/PPSM などのマクロ有効ファイルとして保存できます。