.NET でプレゼンテーションを保存する方法

.NET でプレゼンテーションを保存する方法

Aspose.Slides FOSS for .NET は .pptx フォーマットにのみ prs.Save(path, SaveFormat.Pptx) を使用してプレゼンテーションを保存します。このガイドでは、正しい保存パターン、別のパスへの保存、ストリームへの保存、および一般的な保存関連エラーについて説明します。

ステップバイステップ ガイド

ステップ 1: パッケージをインストール

dotnet add package Aspose.Slides.Foss

ステップ 2: プレゼンテーションを開くまたは作成する

常にusingステートメントを使用してください。オブジェクトが破棄される前に、保存呼び出しを行う必要があります。

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

// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);
// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);

ステップ 3: すべての変更を保存

すべての変更が完了した後、Save() 呼び出しを配置し、using スコープが終了する前に行ってください。

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

using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);

ステップ 4: 別のパスに保存

元のファイルを変更せずに新しいファイルを作成するには、別の出力パスを指定してください:

using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);

template.pptx ファイルは変更されません; customized.pptx が作成されます(既に存在する場合は上書きされます)。


ステップ5: ストリームに保存

Presentation.Save メソッドは Stream も受け付けます:

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

using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");

ステップ 6: 出力を確認する

ファイルに保存した後、存在するか確認してください:

var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");

サポートされている保存形式

形式列挙値サポート
PPTX (Office Open XML)SaveFormat.Pptxはい
PDFN/Aいいえ
HTMLN/Aいいえ
SVGN/Aいいえ
PNG / JPEGN/Aいいえ
ODP (OpenDocument)N/Aいいえ

PPTX のみがサポートされています。format パラメータは現在無視されており、SaveFormat が指定されていても、すべてのプレゼンテーションは PPTX として保存されます。


一般的な問題と対策

IOException: The process cannot access the file

出力ファイルが別のアプリケーションで開かれています(例:PowerPoint がファイルを開いている)。保存する前に、他のアプリケーションでファイルを閉じてください。

ファイルは作成されますが、空または破損しているように見えます

オブジェクトが破棄される前に prs.Save() が呼び出されていることを確認してください。Dispose() が実行された後は、以降の呼び出しは失敗するか、破損した出力が生成されます。

保存時の予期しない出力形式

SaveFormat の値を SaveFormat.Pptx 以外に渡しても例外はスローされません — format パラメータは黙って無視され、ファイルは常に PPTX として保存されます。認識されない形式の値に対する NotSupportedException はありません。


よくある質問

開いたファイルに上書き保存できますか?

はい。同じパスに保存すると元のファイルが上書きされます:

using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx);  // overwrites original

保存すると、変更していないコンテンツは保持されますか?

はい。元のファイルからの不明な XML パーツはそのまま保持されます。ライブラリは、ドキュメントモデルが理解できる部分のみをシリアライズし、認識できない XML はそのまま通過させます。


参照

 日本語