Introducción
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 Los archivos de los rasgos, cargar los existentes, manipular las pistas y las formas, y salvar el resultado de vuelta al disco - todo sin instalar Microsoft Office o cualquier dependencia externa.
El Aspose.Slides.Foss NuGet está dirigido a .NET 9.0 y funciona de forma idéntica en los contenedores Windows, macOS, Linux y Docker. se libera bajo la licencia MIT, por lo que puede utilizarse en proyectos comerciales y open source sin restricciones.
Este post pasa por las capacidades de gestión de presentación básicas: trabajar con los rasgos, construir hierarquías de forma, organizar texto, gestionar tablas y ahorrar a PPTX.
Lo que está incluido
Crear y cargar presentaciones
El Presentation clase es el punto de entrada para cada operación.Puede crear una presentación vacía, cargar uno desde un camino de archivo o leerlo desde una corriente. IDisposable,y, por lo tanto, envuelve en una using La declaración asegura que los recursos se liberan correctamente.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
El Presentation El objeto exponerá la hierarquía de la hoja completa a través de propiedades como: Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images,y, NotesSize.
Trabajando con Slides
El SlideCollection devuelto por Presentation.Slides soporta la adición, clonamiento, inserción y remisión de las laderas.Puede clonar una ladrilla dentro de la misma presentación o a través de presentaciones mientras conserva o repara el layout.
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;
Cada uno Slide Exposiciones SlideNumber, Hidden, LayoutSlide, NotesSlideManager,y, Name.Puedes ir a la colección con foreach o convertirlo en una array con ToArray().
Forma y autoformaciones
Cada disco contiene una ShapeCollection Accesible a través de Slide.Shapes.Uso de AddAutoShape(), AddConnector(),y, AddPictureFrame() Para añadir los tipos de forma más comunes.
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();
El AddAutoShape y InsertAutoShape El método acepta a ShapeType Valor enum y coordenadas de posición. AddConnector, InsertConnector, AddPictureFrame,y, InsertPictureFrame Siga el mismo patrón.
Artículo siguiente: Parágrafos y porciones
La presentación de la obra se realiza dentro de una TextFrame, que contiene una ParagraphCollection.Cada uno Paragraph Tiene a PortionCollection de Portion Los objetos que representan el texto individual se ejecutan con formatación independiente.
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);
Cada uno Portion Tiene a PortionFormat propiedad para controlar la letra, el tamaño, bold/italic, color, sublinea y otros atributos de nivel característico. ParagraphFormat control de alineación, estilo de bala, espacio y indentación.
Mesa de
Las tablas se añaden a través de ShapeCollection.AddTable, que acepta las anchas de la columna y los altos de las líneas como arágenes. Table El objeto proporciona acceso a Rows, Columns,y individual Cell Objetos →.
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;
Ahorro de presentaciones
El Presentation.Save El método escribe el documento en un archivo o flujo. SaveFormat Enum especifica el formato de salida. PPTX es el primer formato que se apoya.
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);
También puedes pasar a SaveOptions - Objeto de control adicional sobre la producción.
Inicio rápido
Instalar el paquete Aspose.Slides FOSS para .NET utilizando el CLI de .Net:
dotnet add package aspose.slides.foss
Crea y salva una presentación mínima:
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);
Formatos apoyados
| Formato | Extensiones | Leer | Escribe |
|---|---|---|---|
| PPTX | .ptx | Sí | Sí |
| PPSX | .px | No | Planificado |
| PPTM | .pptm en el | No | Planificado |
| POTX | .Póx | No | Planificado |
| ODP | .odp | No | Planificado |
| FODP | .FODP | No | Planificado |
Nota de: PPTX lectura y escritura se implementan plenamente.Otros
SaveFormatLos valores enum (PPSX, PPTM, ODP, etc.) se definen para la compatibilidad a futuro y serán funcionales en futuras publicaciones.
Open Source y Licenciación
Aspose.Slides FOSS for .NET is released under the MIT license. The full source code is available on GitHub.Usted puede utilizarlo en proyectos comerciales y de código abierto, modificar el código y redistribuirlo sin restricciones. No se requiere clave API, archivo de licencia o registro.
Empezando a
- Guía de desarrollador: por los.aspose.org/slides/net/ - Tutoriales y documentación conceptual.
- Base de conocimientos: El sitio web.es/slides/net/ FAQs y cómo hacer artículos.
- El referente de API: reference.aspose.org/slides / red/ - Referencia de clase y método completo.