PowerPoint プレゼンテーションを PHP で XPS に変換する

XPS について

Microsoft は XPSPDF の代替として開発しました。PDF に非常に似たファイルを出力することでコンテンツを印刷できます。XPS フォーマットは XML をベースにしています。XPS ファイルのレイアウトや構造はすべての OS とプリンターで同じままです。

Microsoft XPS フォーマットの使用時期

ストレージコストを削減したい場合は、Microsoft PowerPoint プレゼンテーションを XPS フォーマットに変換できます。これにより、ドキュメントの保存、共有、印刷が容易になります。

Microsoft は Windows (Windows 10 でも) で XPS の強力なサポートを継続的に実装しているため、このフォーマットでファイルを保存することを検討した方がよいでしょう。Windows 8.1、Windows 8、Windows 7、Windows Vista を使用している場合、特定の操作において XPS が最適な選択肢になることがあります。

  • Windows 8 は XPS ファイルに OXPS (Open XPS) フォーマットを使用します。OXPS は元の XPS フォーマットの標準化バージョンです。Windows 8 は PDF ファイルよりも XPS ファイルのサポートが優れています。

    • XPS: 組み込みの XPS ビューア/リーダーと XPS への印刷機能が利用可能です。
    • PDF: PDF リーダーは利用可能ですが、PDF への印刷機能はありません。
  • Windows 7Windows Vista は元の XPS フォーマットを使用します。これらの OS も PDF より XPS のサポートが優れています。

    • XPS: 組み込みの XPS ビューアと XPS への印刷機能が利用可能です。
    • PDF: PDF リーダーがなく、PDF への印刷機能もありません。

入力 PPT(X):

todo:image_alt_text

出力 XPS:

todo:image_alt_text

Microsoft は最終的に Windows 10 の Print to PDF 機能を通じて PDF の印刷操作サポートを実装しました。以前は、ユーザーは XPS フォーマットを介してドキュメントを印刷することが期待されていました。

Aspose.Slides を使用した XPS 変換

Java 用の Aspose.Slides では、Presentation クラスが提供する Save メソッドを使用して、プレゼンテーション全体を XPS ドキュメントに変換できます。

プレゼンテーションを XPS に変換する際は、以下の設定のいずれかで保存する必要があります:

  • デフォルト設定(XPSOptions を使用しない)
  • カスタム設定(XPSOptions を使用)

デフォルト設定でプレゼンテーションを XPS に変換

このサンプルコードは、標準設定を使用してプレゼンテーションを XPS ドキュメントに変換する方法を示しています:

  # プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化する
  $pres = new Presentation("Convert_XPS.pptx");
  try {
    # プレゼンテーションを XPS ドキュメントに保存する
    $pres->save("XPS_Output_Without_XPSOption.xps", SaveFormat::Xps);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

カスタム設定でプレゼンテーションを XPS に変換

このサンプルコードは、カスタム設定を使用してプレゼンテーションを XPS ドキュメントに変換する方法を示しています:

  # プレゼンテーションファイルを表す Presentation オブジェクトをインスタンス化する
  $pres = new Presentation("Convert_XPS_Options.pptx");
  try {
    # TiffOptions クラスをインスタンス化する
    $options = new XpsOptions();
    # MetaFiles を PNG として保存
    $options->setSaveMetafilesAsPng(true);
    # プレゼンテーションを XPS ドキュメントに保存する
    $pres->save("XPS_Output_With_Options.xps", SaveFormat::Xps, $options);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

ファイルではなくストリームに XPS を保存できますか?
はい。Aspose.Slides はストリームに直接エクスポートできるため、Web API、サーバー側パイプライン、またはファイルシステムに触れずに XPS を送信したいあらゆるシナリオに最適です。

非表示スライドは XPS に含まれますか、除外できますか?
デフォルトでは、通常(表示)スライドのみがレンダリングされます。非表示スライドを含めるか除外するかエクスポート設定 で指定でき、出力に意図したページだけが含まれるようにできます。