はじめに

Aspose.Slides FOSS for .NET は、C# だけで PowerPoint プレゼンテーションを管理するための包括的なクラスセットを提供します。このライブラリを使用すると、ゼロから新しい .pptx ファイルを作成し、既存のファイルを読み込み、スライドやシェイプを操作し、結果をディスクに保存できます – Microsoft Office や外部依存関係をインストールすることなく。

Aspose.Slides.Foss NuGet パッケージは .NET 9.0 を対象とし、Windows、macOS、Linux、Docker コンテナ上で同一に動作します。MIT ライセンスの下でリリースされているため、商用プロジェクトやオープンソースプロジェクトで制限なく使用できます。

この投稿では、プレゼンテーション管理の主要機能であるスライドの操作、シェイプ階層の構築、テキストの整理、テーブルの管理、そして PPTX への保存について解説します。


含まれるもの

プレゼンテーションの作成と読み込み

Presentation クラスはすべての操作のエントリーポイントです。空のプレゼンテーションを作成したり、ファイルパスからロードしたり、ストリームから読み取ったりできます。クラスは IDisposable を実装しているため、using ステートメントでラップするとリソースが適切に解放されます。

// Create a brand-new, empty presentation
using var pres = new Presentation();

// Load an existing file
using var existing = new Presentation("report.pptx");

Presentation オブジェクトは、SlidesMastersLayoutSlidesSectionsCommentAuthorsImagesNotesSize などのプロパティを通じて、完全なスライド階層を公開します。

スライドの操作

Presentation.Slides が返す SlideCollection は、スライドの追加、クローン作成、挿入、並び替え、削除をサポートします。同じプレゼンテーション内または別のプレゼンテーション間でスライドをクローンし、レイアウトを保持または再マッピングすることができます。

using var pres = new Presentation();

// The default presentation contains one blank slide
var firstSlide = pres.Slides[0];

// Clone the first slide and append it
pres.Slides.AddClone(firstSlide);

// Insert a clone at a specific position
pres.Slides.InsertClone(1, firstSlide);

// Remove a slide by index
pres.Slides.RemoveAt(2);

// Total slide count
int count = pres.Slides.Count;

SlideSlideNumberHiddenLayoutSlideNotesSlideManager、およびNameを公開します。foreachでコレクションを反復処理したり、ToArray()で配列に変換したりできます。

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

すべてのスライドには ShapeCollection が含まれており、Slide.Shapes からアクセスできます。コレクションは最も一般的なシェイプタイプ向けのファクトリメソッドを提供します。

using var pres = new Presentation();
var slide = pres.Slides[0];

// Add a rectangle AutoShape
var rect = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 300, 150);

// Add a connector
var connector = slide.Shapes.AddConnector(
    ShapeType.BentConnector3, 100, 200, 200, 50);

// Reorder a shape to bring it forward
slide.Shapes.Reorder(0, rect);

// Remove all shapes
slide.Shapes.Clear();

AddAutoShapeInsertAutoShape メソッドは ShapeType 列挙値と位置およびサイズ座標を受け取ります。AddConnectorInsertConnectorAddPictureFrame、および InsertPictureFrame は同じパターンに従います。

Text: 段落と部分

プレゼンテーション内のテキストは TextFrame の中にあり、そこには ParagraphCollection が含まれています。各 Paragraph は、個別の書式設定を持つテキストランを表す Portion オブジェクトの PortionCollection を保持しています。

using var pres = new Presentation();
var slide = pres.Slides[0];

var shape = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 50, 400, 200);

// Access the shape's text frame
var tf = shape.TextFrame;

// Read or set the full text
tf.Text = "Hello, presentation world!";

// Work with individual paragraphs and portions
var para = new Paragraph();
var portion = new Portion("Formatted run");
para.Portions.Add(portion);
tf.Paragraphs.Add(para);

Portionには、フォント、サイズ、太字/斜体、色、下線、その他の文字レベル属性を制御するためのPortionFormatプロパティがあります。ParagraphFormatは配置、箇条書きスタイル、間隔、インデントを制御します。

テーブル

テーブルは ShapeCollection.AddTable を使用して追加され、列幅と行高さを配列として受け取ります。返される Table オブジェクトは RowsColumns、および個々の Cell オブジェクトへのアクセスを提供します。

using var pres = new Presentation();
var slide = pres.Slides[0];

double[] colWidths = { 150, 150, 150 };
double[] rowHeights = { 40, 40, 40 };

var table = slide.Shapes.AddTable(
    50, 50, colWidths, rowHeights);

// Set text in a cell
table.Rows[0][0].TextFrame.Text = "Header 1";
table.Rows[0][1].TextFrame.Text = "Header 2";
table.Rows[0][2].TextFrame.Text = "Header 3";

// Merge cells
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);

// Style presets
table.StylePreset = TableStylePreset.MediumStyle2Accent1;

プレゼンテーションの保存

Presentation.Save メソッドはドキュメントをファイルまたはストリームに書き込みます。SaveFormat 列挙体は出力形式を指定します。PPTX は主にサポートされている出力形式です。

using var pres = new Presentation();
// ... build slides ...

// Save to a file
pres.Save("output.pptx", SaveFormat.Pptx);

// Save to a stream
using var ms = new MemoryStream();
pres.Save(ms, SaveFormat.Pptx);

// Save specific slides by index
pres.Save("subset.pptx", new[] { 1, 3 }, SaveFormat.Pptx);

出力を追加で制御するために、SaveOptions オブジェクトを渡すこともできます。


クイックスタート

.NET CLI を使用してパッケージをインストールします:

dotnet add package aspose.slides.foss

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

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

// 1. Create a new presentation
using var pres = new Presentation();

// 2. Get the default slide
var slide = pres.Slides[0];

// 3. Add a title shape
var title = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 30, 600, 60);
title.TextFrame.Text = "Quarterly Report";

// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
    ShapeType.Rectangle, 50, 120, 600, 300);
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
body.TextFrame.Paragraphs.Add(para);

// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);

サポートされているフォーマット

フォーマット拡張子読み取り書き込み
PPTX.pptxはいはい
PPSX.ppsxいいえはい
PPTM.pptmいいえはい
POTX.potxいいえはい
ODP.odpいいえはい
FODP.fodpいいえはい

注: ライブラリはPPTXをネイティブに読み書きします。SaveFormat 列挙体にリストされている他のフォーマットは API レベルで宣言されていますが、実際のエクスポート忠実度は異なる場合があります。レガシー .ppt バイナリ形式はサポートされていません。


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

Aspose.Slides FOSS for .NET は MIT ライセンスの下でリリースされています。完全なソースコードは GitHub で入手可能です。商用およびオープンソースプロジェクトで使用でき、コードを変更し、制限なく再配布できます。API キー、ライセンス ファイル、または登録は必要ありません。


はじめに