はじめに

Aspose.Slides FOSS for Java が Maven Central で利用可能になりました: Java だけで PowerPoint .pptx ファイルの作成、読み取り、編集ができる無料の MIT ライセンス ライブラリで、Microsoft Office や任意のプロプライエタリ ランタイムへの依存はありません。

このライブラリは、プログラムでプレゼンテーションファイルを生成または操作する必要がある開発者向けに設計されています:データからスライドデッキを自動化したり、アップロードされたPPTXファイルからテキストやメタデータを抽出したり、プレゼンテーションベースのレポーティングパイプラインを構築したり、Spring Bootアプリケーションにプレゼンテーション作成機能を組み込んだりするためです。aspose-slides-fossは純粋なJavaであるため、Windows、macOS、Linux、Dockerコンテナ上で同一にデプロイできます。

主な機能

  • フルラウンドトリップ PPTX サポート: 任意の .pptx ファイルを開き、内容を変更し、ライブラリがまだ理解していない不明な XML パーツを失うことなく再保存します。
  • スライド管理: prs.getSlides() を使用してスライドを追加、削除、反復処理します。プレゼンテーションは new Presentation() 後に空白スライドが1枚で開始します。
  • AutoShape、テーブル、コネクタ: slide.getShapes().addAutoShape() で図形を挿入し、slide.getShapes().addTable() で表形式データを、slide.getShapes().addConnector() で図形間のビジュアルコネクタを挿入します。
  • リッチテキスト書式設定: PortionFormat を使用して文字レベルでテキストをフォーマットします。フォントサイズ、太字、斜体、下線、そして FillType.SOLIDColorFormat による ARGB カラーを設定できます。
  • 塗りつぶしタイプ: 任意の図形に FillType.SOLIDGRADIENTPATTERN、または PICTURE の塗りつぶしを適用します。
  • ビジュアルエフェクト: shape.getEffectFormat() を使用して外側の影、グロー、ソフトエッジ、ぼかし、反射、内側の影を適用します。
  • 3D 書式設定: shape.getThreeDFormat() を使用してベベル、カメラ、ライトリグ、マテリアル、押し出し深さを設定します。
  • スピーカーノート: getNotesSlideManager().addNotesSlide() を使用して各スライドにノートテキストを添付します。
  • スレッド化コメント: 作成者メタデータとスライド位置を含むコメントを追加します。
  • 埋め込み画像: ファイルパス、バイト配列、または InputStream から埋め込みます。
  • ドキュメントプロパティ: コア、アプリ、カスタムプロパティを読み書きします。

はじめに

Maven 依存関係を追加してください。Java 21 以降が必要です。

<dependency>
    <groupId>org.aspose.slides.foss</groupId>
    <artifactId>aspose-slides-foss</artifactId>
    <version>1.0.0</version>
</dependency>

シェイプを使用して最初のプレゼンテーションを作成し、保存します:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

public class HelloSlides {
    public static void main(String[] args) {
        try (Presentation prs = new Presentation()) {
            ISlide slide = prs.getSlides().get(0);
            IAutoShape shape = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 50, 400, 120
            );
            shape.addTextFrame("Hello from Aspose.Slides FOSS!");
            prs.save("hello.pptx");
        }
    }
}

常に try-with-resources ブロック内で Presentation を使用してください; これにより、ブロックが終了するとすべての内部リソースが解放されます。

テキスト書式設定例

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 500, 150
    );
    ITextFrame tf = shape.addTextFrame("Bold heading in corporate blue");
    IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
    fmt.setFontHeight(28);
    fmt.setFontBold(NullableBool.TRUE);
    fmt.getFillFormat().setFillType(FillType.SOLID);
    fmt.getFillFormat().getSolidFillColor().setColor(new Color(0, 70, 127));
    prs.save("formatted.pptx");
}

現在の制限事項

このリリースでは、以下の領域で UnsupportedOperationException がスローされます:

  • チャート、SmartArt、OLE オブジェクト
  • アニメーションとスライド トランジション
  • PDF、HTML、SVG、または画像形式へのエクスポート
  • ハイパーリンク、アクション設定、VBA マクロ、デジタル署名

ロード時に遭遇した未知のXMLパーツは、保存時にそのまま保持されるため、他のツールで生成されたPPTXファイルは安全に往復できます。

関連項目