はじめに

Aspose.Slides FOSS for Java は、Java 開発者が Microsoft Office に依存せずに PowerPoint プレゼンテーションを作成および操作できる、無料のオープンソース ライブラリです。このライブラリは org.aspose.slides.foss パッケージとして提供され、Java 21 以降を対象としています。

このプロジェクトは MIT ライセンスの下でリリースされているため、個人・商用プロジェクトのいずれでも無料で、API キーなしで使用できます。スライド、シェイプ、テキスト、テーブル、画像、コメント、ドキュメントプロパティのための豊富なオブジェクトモデルを提供し、Office Open XML パッケージ形式を直接操作することで実現しています。

273 クラス、2,600 を超えるメソッド、そして 42 の列挙型を備えたコア API は、任意の Java アプリケーションでプレゼンテーション ワークフローを自動化するために必要な構成要素を網羅しています。


含まれるもの

プレゼンテーションのライフサイクル

Presentation クラスはすべての操作のエントリーポイントです。空のプレゼンテーションを作成し、結果をディスクまたはさまざまな形式の OutputStream に保存できます。クラスは AutoCloseable を実装しているため、try-with-resources ブロックと自然に連携します。

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation pres = new Presentation()) {
    // A new presentation starts with one blank slide
    System.out.println("Slides: " + pres.getSlides().size());
    pres.save("output.pptx", SaveFormat.PPTX);
}

スライド管理

SlideCollection はスライドデッキを完全に制御できます。addEmptySlide() を使用して空白スライドを追加し、addClone() で既存のスライドを複製し、insertEmptySlide() を使用して特定のインデックスにスライドを挿入し、参照またはインデックスでスライドを削除し、コレクションを反復処理できます。

try (Presentation pres = new Presentation()) {
    ILayoutSlide layout = pres.getLayoutSlides().get(0);
    pres.getSlides().addEmptySlide(layout);
    pres.getSlides().addClone(pres.getSlides().get(0));
    System.out.println("Total slides: " + pres.getSlides().size());
}

シェイプとオートシェイプ

AutoShape クラスは、スライド上で最も一般的な描画可能オブジェクトを表します。IShapeCollection.addAutoShape() を使用してシェイプを作成し、ShapeType 定数(例: ShapeType.RECTANGLE)と位置座標を指定します。各 AutoShape は、テキストコンテンツ用の TextFrame と、ビジュアルスタイリング用の FillFormat を公開します。

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100, false);
    ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS");
    System.out.println(tf.getText());
}

テキストと段落

リッチテキストは TextFrameParagraphCollectionParagraphPortionCollection、および Portion オブジェクトの階層としてモデル化されています。TextFrame.setText() を使用してフレームに直接プレーンテキストを設定することも、個別の Portion インスタンスを追加して異なる書式設定を持つマルチラン段落を構築することもできます。

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes()
        .addAutoShape(ShapeType.RECTANGLE, 50, 50, 400, 100, false);
    ITextFrame tf = shape.addTextFrame("First run ");
    Portion extra = new Portion("second run");
    tf.getParagraphs().get(0).getPortions().add(extra);
    System.out.println(tf.getText());
}

ドキュメント プロパティ

DocumentProperties クラスは、title、author、subject、keywords、category、timestamps などの標準メタデータ フィールドを公開します。プロパティは PPTX の core および extended properties parts に永続化され、ラウンドトリップの save/reload サイクルでも保持されます。

try (Presentation pres = new Presentation()) {
    IDocumentProperties props = pres.getDocumentProperties();
    props.setTitle("Quarterly Report");
    props.setAuthor("Engineering Team");
    pres.save("report.pptx", SaveFormat.PPTX);
}

コメントと注釈

コメントサブシステムには CommentAuthorCollectionCommentCollection が含まれます。作者を追加したり、特定のスライドや位置にコメントを添付したり、既存の注釈を読み戻すことができます。コメントデータは PPTX パッケージの ppt/commentAuthors.xmlppt/comments/*.xml パーツに保存されます。


クイックスタート

pom.xml に Maven 依存関係を追加してください:

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

次にプレゼンテーションを作成し、保存します:

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

public class QuickStart {
    public static void main(String[] args) {
        try (Presentation pres = new Presentation()) {
            ISlide slide = pres.getSlides().get(0);

            // Add a title shape
            IAutoShape title = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 30, 600, 60, false);
            title.addTextFrame("Aspose.Slides FOSS for Java");

            // Add a content shape
            IAutoShape body = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 120, 600, 300, false);
            body.addTextFrame(
                "This presentation was created entirely in Java "
                + "using a free, open-source library.");

            pres.save("quick-start.pptx", SaveFormat.PPTX);
        }
    }
}

サポートされている形式

SaveFormat 列挙は、ライブラリが書き込めるすべての出力形式を定義します。以下の表は確認済みのエントリを一覧しています。

フォーマット拡張子書き込み
PPTX.pptxはい
PPTM.pptmはい
PPSX.ppsxはい
PPSM.ppsmはい
POTX.potxはい
POTM.potmはい
ODP.odpはい
OTP.otpはい
FODP.fodpはい
PPT.pptはい
PPS.ppsはい
POT.potはい
PDF.pdfはい
XPS.xpsはい
HTML.htmlはい
HTML5.htmlはい
SVG.svgはい
TIFF.tiffはい
PNG.pngはい
JPEG.jpegはい
BMP.bmpはい
GIF.gifはい
MD.mdはい

上記に記載された形式は、SaveFormat 列挙体で定義された確定的なエクスポート対象です。


オープンソースとライセンス

Aspose.Slides FOSS for Java は MIT ライセンスの下で配布されています。完全なソースコードは GitHub の Aspose.Slides-FOSS-for-Java で入手可能です。ロイヤリティやライセンスキーなしで、任意のプロジェクトでライブラリを使用、変更、再配布することが自由です。


はじめに

さらに深く掘り下げる準備はできましたか?こちらは、開始するのに役立つリソースです: