Introduction
Aspose.Slides FOSS for .NET provides a comprehensive set of classes for managing PowerPoint presentations entirely in C#. The library lets you create new .pptx les fichiers de la déchirure, chargement des existants, manipulation des images et des formes, et sauvegarde le résultat à l’écran - tout sans installer Microsoft Office ou toute dépendance externe.
Le Aspose.Slides.Foss Le package NuGet vise .NET 9.0 et fonctionne de manière identique sur les conteneurs Windows, macOS, Linux et Docker. Il est sorti sous la licence MIT, vous pouvez donc l’utiliser dans des projets commerciaux et open source sans restrictions.
Ce post passe par les capacités de gestion de présentation clés: travailler avec des slides, construire des hiérarchies de forme, organiser le texte, gérer les tables et économiser à PPTX.
Ce qui est inclus
Créer et charger des présentations
Le Presentation classe est le point d’entrée pour chaque opération. Vous pouvez créer une présentation vide, charger un de la route des fichiers ou lire à partir d’un flux. IDisposable,Et en le mettant dans une using La déclaration assure que les ressources sont libérées correctement.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
Le Presentation l’objet expose la hiérarchie complète de la façade par des propriétés telles que Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images,et NotesSize.
Travailler avec Slides
Le SlideCollection Retourné par Presentation.Slides Vous pouvez cloner un slide dans la même présentation ou sur les présentations tout en conservant ou réparant des layouts.
using var pres = new Presentation();
// The default presentation contains one blank slide
var firstSlide = pres.Slides[0];
// Clone the first slide and append it
pres.Slides.AddClone(firstSlide);
// Insert a clone at a specific position
pres.Slides.InsertClone(1, firstSlide);
// Remove a slide by index
pres.Slides.RemoveAt(2);
// Total slide count
int count = pres.Slides.Count;
Chacun Slide Expositions SlideNumber, Hidden, LayoutSlide, NotesSlideManager,et Name.Vous pouvez écrire la collection avec foreach ou le convertir en un array avec ToArray().
Formes et AutoShapes
Chaque table contient un ShapeCollection accessible par Slide.Shapes.Utiliser AddAutoShape(), AddConnector(),et AddPictureFrame() Ajouter les types de forme les plus courants.
using var pres = new Presentation();
var slide = pres.Slides[0];
// Add a rectangle AutoShape
var rect = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 300, 150);
// Add a connector
var connector = slide.Shapes.AddConnector(
ShapeType.BentConnector3, 100, 200, 200, 50);
// Reorder a shape to bring it forward
slide.Shapes.Reorder(0, rect);
// Remove all shapes
slide.Shapes.Clear();
Le AddAutoShape et InsertAutoShape Les méthodes acceptent un ShapeType valeur enum plus les coordonnées de position et de taille. AddConnector, InsertConnector, AddPictureFrame,et InsertPictureFrame Suivez le même modèle.
Texte : Paragrafes et Portions
La présentation dans une présentée est à l’intérieur d’un TextFrame,qui contient une ParagraphCollection.Chaque Paragraph Il a une PortionCollection de Portion Les objets représentant un texte individuel fonctionnent avec la formatisation indépendante.
using var pres = new Presentation();
var slide = pres.Slides[0];
var shape = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 400, 200);
// Access the shape's text frame
var tf = shape.TextFrame;
// Read or set the full text
tf.Text = "Hello, presentation world!";
// Work with individual paragraphs and portions
var para = new Paragraph();
var portion = new Portion("Formatted run");
para.Portions.Add(portion);
tf.Paragraphs.Add(para);
Chacun Portion Il a une PortionFormat propriété pour contrôler la phonture, la taille, le bold/italic, les couleurs, l’assemblage et d’autres attributs de niveau caractère. ParagraphFormat Contrôler l’alignement, le style de la balle, l’espace et l ́indentation.
Tableau
Les tables sont ajoutées à travers ShapeCollection.AddTable, qui accepte les largeurs de colonne et les hauteurs d’ordre comme des rayons. Table L’objet fournit un accès à Rows, Columns,et individuellement Cell objets .
using var pres = new Presentation();
var slide = pres.Slides[0];
double[] colWidths = { 150, 150, 150 };
double[] rowHeights = { 40, 40, 40 };
var table = slide.Shapes.AddTable(
50, 50, colWidths, rowHeights);
// Merge cells in the second row
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);
// Apply a visual style preset
table.StylePreset = TableStylePreset.MediumStyle2Accent1;
Économiser des présentations
Le Presentation.Save la méthode écrit le document dans un fichier ou un flux. SaveFormat enum spécifie le format de sortie. PPTX est le premier format d’entrée soutenu.
using var pres = new Presentation();
// ... build slides ...
// Save to a file
pres.Save("output.pptx", SaveFormat.Pptx);
// Save to a stream
using var ms = new MemoryStream();
pres.Save(ms, SaveFormat.Pptx);
// Save specific slides by index
pres.Save("subset.pptx", new[] { 1, 3 }, SaveFormat.Pptx);
Vous pouvez aussi passer une SaveOptions - un contrôle supplémentaire sur la production.
Démarrage rapide
Installation du package Aspose.Slides FOSS pour .NET en utilisant le CLI .Net :
dotnet add package aspose.slides.foss
Créer et enregistrer une présentation minimale :
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// 1. Create a new presentation
using var pres = new Presentation();
// 2. Get the default slide
var slide = pres.Slides[0];
// 3. Add a title shape
var title = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 30, 600, 60);
title.AddTextFrame("Quarterly Report");
// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 120, 600, 300);
var bodyTf = body.AddTextFrame("");
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
bodyTf.Paragraphs.Add(para);
// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);
Formats soutenus
| Formats | Extension | Lire | Écrire |
|---|---|---|---|
| PPTX | .pptx | Oui | Oui |
| PPSX | .ppsx | Non pas | Planifié |
| PPTM | .pptm | Non pas | Planifié |
| POTX | .Le Potx | Non pas | Planifié |
| ODP | .ODP | Non pas | Planifié |
| FODP | .FODP | Non pas | Planifié |
Note : PPTX lecture et écriture sont pleinement mis en œuvre.
SaveFormatLes valeurs enum (PPSX, PPTM, ODP, etc.) sont définis pour la compatibilité à l’avant et seront fonctionnels dans les prochaines éditions.
Source ouverte et licence
Aspose.Slides FOSS for .NET is released under the MIT license. The full source code is available on GitHub.Vous pouvez l’utiliser dans des projets commerciaux et open source, modifier le code et redistribuer sans restriction. aucun clé API, fichier de licence ou enregistrement n’est requis.
Pour commencer
- Guide de développeur: Docs.aspose.org/slides / réseau - Les tutoriels et la documentation conceptuelle.
- Base de connaissances: Avis sur le site www.aspose.org/slides/net/ FAQs et comment faire des articles.
- Le référencement API: référence.aspose.org/slides / réseau / - la classe et le référence méthodologique.