.NETでプレゼンテーションをロードする方法
Aspose.Slides FOSS for .NET lets you open any .pptx ファイルを検査し、その内容を確認し、PPTX に戻して保存するか、データを抽出します。このガイドでは、ファイルの開き方、スライドの反復処理、シェイプテキストの読み取り、そして保存のラウンドトリップについて説明します。.
ステップバイステップ ガイド
ステップ 1: パッケージをインストールする
dotnet add package Aspose.Slides.Fossステップ 2: 既存のプレゼンテーションを開く
ファイルパスを渡す new Presentation().。 使用する using ステートメントでクリーンアップを確実に行う。.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
prs.Save("output.pptx", SaveFormat.Pptx);ソースファイル内の未知の XML パーツはそのまま保持されます:ライブラリはまだ理解できないコンテンツを削除することはありません。.
ステップ 3: スライドを検査する
すべてのスライドを反復し、インデックスを出力します:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
var slide = prs.Slides[i];
int shapeCount = slide.Shapes.Count;
Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}ステップ 4: シェイプテキストを読む
シェイプを反復処理し、a を持つシェイプからテキストを読み取る。 TextFrame:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
foreach (var shape in slide.Shapes)
{
if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
{
string text = autoShape.TextFrame.Text;
if (!string.IsNullOrWhiteSpace(text))
Console.WriteLine($" Shape text: {text}");
}
}
}ステップ 5: ドキュメントプロパティを読む
からコアドキュメントプロパティにアクセスする。 prs.DocumentProperties:
using Aspose.Slides.Foss;
using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title: {props.Title}");
Console.WriteLine($"Author: {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");ステップ 6: ラウンドトリップ保存
プレゼンテーションを検査または変更した後、PPTX に再保存します:
prs.Save("output.pptx", SaveFormat.Pptx);別のパスに保存すると新しいファイルが作成されます。同じパスに保存すると元のファイルが上書きされます。.
一般的な問題と対策
FileNotFoundException
パスが the に正しいことを確認する。 .pptx ファイルが作業ディレクトリに対して正しいことを確認する。使用する Path.Combine 堅牢なパス構築のために:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
このライブラリはサポートしています .pptx (Office Open XML) のみ。レガシー .ppt (binary PowerPoint 97-2003) ファイルはサポートされていません。.
シェイプには TextFrame プロパティがありません
一部のシェイプ(Connector, PictureFrame)は a がありません TextFrame.。 Cast to IAutoShape テキストにアクセスする前に null をチェックしてください。.
よくある質問
読み込みは元のコンテンツをすべて保持しますか??
はい。未知の XML パーツはラウンドトリップ保存時にそのまま保持されます。ライブラリはまだ認識できない XML コンテンツを削除しません。.
パスワードで保護された PPTX を読み込めますか??
パスワード保護(暗号化)されたプレゼンテーションはこのエディションではサポートされていません。.
埋め込み画像を抽出できますか??
画像コレクションにアクセスします: prs.Images は次を返します ImageCollection.。 各画像には、生の画像データを読み取るためのプロパティがあります。.
MemoryStream からのロードはサポートされていますか??
はい。 The Presentation コンストラクタは a を受け入れます Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");