Cara Memuat Persembahan dalam .NET
Aspose.Slides FOSS for .NET lets you open any .pptx fail, periksa kandungannya, dan sama ada simpan semula ke PPTX atau ekstrak data daripadanya. Panduan ini meliputi membuka fail, mengiterasi slaid, membaca teks bentuk, dan menyimpan semula secara round‑tripping.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
dotnet add package Aspose.Slides.FossLangkah 2: Buka Persembahan Sedia Ada
Hantar laluan fail kepada new Presentation(). Gunakan satu using pernyataan untuk memastikan pembersihan.
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);Bahagian XML yang tidak diketahui dalam fail sumber dipelihara secara verbatim: perpustakaan tidak pernah mengeluarkan kandungan yang belum difahaminya.
Langkah 3: Periksa Slaid
Ulangi semua slaid dan cetak indeks mereka:
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");
}Langkah 4: Baca Teks Bentuk
Iterasi bentuk-bentuk dan baca teks daripada bentuk yang mempunyai 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}");
}
}
}Langkah 5: Baca Sifat Dokumen
Akses sifat dokumen teras dari 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}");Langkah 6: Simpan Pusingan Balik
Selepas memeriksa atau mengubah persembahan, simpan kembali ke PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Menyimpan ke laluan yang berbeza akan mencipta fail baru. Menyimpan ke laluan yang sama akan menulis ganti fail asal.
Isu Umum dan Penyelesaian
FileNotFoundException
Semak bahawa laluan ke .pptx fail adalah betul relatif kepada direktori kerja. Gunakan Path.Combine untuk pembinaan laluan yang kukuh:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
Pustaka menyokong .pptx (Office Open XML) sahaja. Legasi .ppt (binary PowerPoint 97-2003) fail tidak disokong.
Bentuk tidak mempunyai sifat TextFrame
Beberapa bentuk (Connector, PictureFrame) tidak mempunyai TextFrame. Tukar kepada IAutoShape dan semak null sebelum mengakses teks.
Soalan Lazim
Adakah pemuatan mengekalkan semua kandungan asal?
Ya. Bahagian XML yang tidak dikenali dipelihara secara verbatim semasa simpanan pusingan balik. Pustaka tidak akan membuang sebarang kandungan XML yang belum dikenali.
Bolehkah saya memuatkan PPTX yang dilindungi kata laluan?
Pembentangan yang dilindungi kata laluan (dienkripsi) tidak disokong dalam edisi ini.
Bolehkah saya mengekstrak imej terbenam?
Akses koleksi imej: prs.Images mengembalikan ImageCollection. Setiap imej mempunyai sifat untuk membaca data imej mentah.
Adakah pemuatan dari MemoryStream disokong?
Ya. The Presentation constructor menerima a Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");