.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 | はい |
| N/A | いいえ | |
| HTML | N/A | いいえ |
| SVG | N/A | いいえ |
| PNG / JPEG | N/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 はそのまま通過させます。