Hoe presentaties te laden in .NET
Aspose.Slides FOSS for .NET stelt je in staat om elk .pptx‑bestand te openen, de inhoud te inspecteren en het vervolgens op te slaan als PPTX of gegevens eruit te extraheren. Deze gids behandelt het openen van een bestand, het itereren door dia’s, het lezen van vormtekst en het round‑tripping van het opslaan.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
dotnet add package Aspose.Slides.FossStap 2: Open een bestaande presentatie
Geef het bestandspad door aan new Presentation(). Gebruik een using statement om opruimen te garanderen.
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);Onbekende XML-onderdelen in het bronbestand worden letterlijk bewaard: de bibliotheek verwijdert nooit inhoud die ze nog niet begrijpt.
Stap 3: Dia’s inspecteren
Itereer over alle dia’s en print hun index:
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");
}Stap 4: Vormtekst lezen
Itereer over vormen en lees tekst van vormen die een TextFrame hebben:
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}");
}
}
}Stap 5: Documenteigenschappen lezen
Toegang tot kern documenteigenschappen van 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}");Stap 6: Round-Trip Opslaan
Nadat u de presentatie hebt geïnspecteerd of aangepast, sla deze opnieuw op als PPTX:
prs.Save("output.pptx", SaveFormat.Pptx);Opslaan naar een ander pad maakt een nieuw bestand aan. Opslaan naar hetzelfde pad overschrijft het origineel.
Veelvoorkomende problemen en oplossingen
FileNotFoundException
Controleer of het pad naar het .pptx‑bestand correct is ten opzichte van de werkmap. Gebruik Path.Combine voor robuuste padconstructie:
string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);Exception: File format is not supported
De bibliotheek ondersteunt alleen .pptx (Office Open XML). Legacy .ppt (binaire PowerPoint 97-2003) bestanden worden niet ondersteund.
Shapes hebben geen TextFrame‑eigenschap
Sommige vormen (Connector, PictureFrame) hebben geen TextFrame. Cast naar IAutoShape en controleer op null voordat u de tekst benadert.
Veelgestelde vragen
Behoudt het laden alle oorspronkelijke inhoud?
Ja. Onbekende XML‑onderdelen worden letterlijk bewaard bij round‑trip opslaan. De bibliotheek zal geen XML‑inhoud verwijderen die het nog niet herkent.
Kan ik een met wachtwoord beveiligde PPTX laden?
Wachtwoordbeveiligde (versleutelde) presentaties worden niet ondersteund in deze editie.
Kan ik ingesloten afbeeldingen extraheren?
Toegang tot de afbeeldingenverzameling: prs.Images retourneert de ImageCollection. Elke afbeelding heeft eigenschappen om de ruwe afbeeldingsgegevens te lezen.
Is het laden vanuit een MemoryStream ondersteund?
Ja. De Presentation constructor accepteert een Stream:
using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");