PowerPointをXPSに変換

XPSについて

マイクロソフトはXPSPDFの代替として開発しました。これにより、PDFに非常に似たファイルを出力することによってコンテンツを印刷できます。XPSフォーマットはXMLに基づいています。XPSファイルのレイアウトや構造は、すべてのオペレーティングシステムやプリンターで同じままです。

Microsoft XPSフォーマットを使用するタイミング

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

マイクロソフトはWindows(Windows 10でも)でXPSの強力なサポートを実装し続けているため、このフォーマットでファイルを保存することを検討するかもしれません。Windows 8.1、Windows 8、Windows 7、Windows Vistaを使用している場合、特定の操作においてXPSが最適なオプションとなるかもしれません。

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

    • XPS: ビルトインのXPSビューワー/リーダーとXPSへの印刷機能が利用可能。
    • PDF: PDFリーダーは利用可能ですが、PDFへの印刷機能はありません。
  • Windows 7とWindows VistaはオリジナルのXPSフォーマットを使用します。これらのオペレーティングシステムもXPSファイルに対してPDFよりも優れたサポートを提供します。

    • XPS: ビルトインのXPSビューワーとXPSへの印刷機能が利用可能。
    • PDF: PDFリーダーはありません。PDFへの印刷機能もありません。

入力PPT(X):

todo:image_alt_text**

出力XPS:

todo:image_alt_text**

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

Aspose.Slidesを使ったXPS変換

Java用のAspose.Slidesでは、Presentationクラスによって公開されているSaveメソッドを使用して、プレゼンテーション全体をXPS文書に変換できます。

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

デフォルト設定を使用したプレゼンテーションのXPSへの変換

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

// プレゼンテーションファイルを表すプレゼンテーションオブジェクトをインスタンス化します
Presentation pres = new Presentation("Convert_XPS.pptx");
try {
    // プレゼンテーションをXPS文書に保存する
    pres.save("XPS_Output_Without_XPSOption.xps", SaveFormat.Xps);
} finally {
    if (pres != null) pres.dispose();
}

カスタム設定を使用したプレゼンテーションのXPSへの変換

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

// プレゼンテーションファイルを表すプレゼンテーションオブジェクトをインスタンス化します
Presentation pres = new Presentation("Convert_XPS_Options.pptx");
try {
    // TiffOptionsクラスをインスタンス化します
    XpsOptions options = new XpsOptions();

    // メタファイルをPNGとして保存します
    options.setSaveMetafilesAsPng(true);

    // プレゼンテーションをXPS文書に保存する
    pres.save("XPS_Output_With_Options.xps", SaveFormat.Xps, options);
} finally {
    if (pres != null) pres.dispose();
}