Introdução
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 Arquivos a partir do zero, carregando os existentes, manipulando slides e formas, e salvando o resultado de volta ao disco – tudo sem instalar Microsoft Office ou qualquer dependência externa.
A Comissão Aspose.Slides.Foss O pacote NuGet tem como alvo .NET 9.0 e funciona de forma idêntica em contêineres do Windows, macOS, Linux e Docker. É lançado sob a licença MIT, para que você possa usá-lo em projetos comerciais e open source sem restrições.
Este post percorre os recursos básicos de gerenciamento de apresentações: trabalhar com slides, construir hierarquias de formas, organizar texto, gerencia tabelas e salvar em PPTX.
O que está incluído
Criação e carregamento de apresentações
A Comissão Presentation class é o ponto de entrada para cada operação. Você pode criar uma apresentação vazia, carregar um a partir de um caminho de arquivo ou ler de uma corrente. A classe implementa IDisposable, então envolvendo-o em um using Esta declaração garante que os recursos são liberados de forma adequada.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
A Comissão Presentation objeto expõe a hierarquia completa do slide através de propriedades como: Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images, e NotesSize.
Trabalhar com diapositivas
A Comissão SlideCollection devolvido por: Presentation.Slides Suporta adicionar, clonar, inserir, reordenar e remover slides. Você pode clonare um slide dentro da mesma apresentação ou entre as apresentações enquanto preserva ou remapa 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;
Cada um. Slide exposições SlideNumber, Hidden, LayoutSlide, NotesSlideManager, e Name.Você pode iterar a coleção com o foreach ou convertê-lo em uma matriz com: ToArray().
Formas e AutoFormas
Cada diapositiva contém um ShapeCollection acessível através de: Slide.Shapes.A coleção fornece métodos de fábrica para os tipos mais comuns.
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();
A Comissão AddAutoShape e a) InsertAutoShape métodos aceitam um ShapeType valor enum mais coordenadas de posição e tamanho. AddConnector, InsertConnector, AddPictureFrame, e InsertPictureFrame seguem o mesmo padrão.
Texto: Parágrafos e partes
O texto numa apresentação vive dentro de um TextFrame, que contém um ParagraphCollection.Cada um . Paragraph contém um PortionCollection de: Portion Objetos que representam textos individuais executados com formatação independente.
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 um. Portion tem um PortionFormat Propriedade para controlar a fonte, o tamanho, negrito/italic, cor, sublinhado e outros atributos de nível de caracteres. ParagraphFormat Controla o alinhamento, estilo de bala, espaçamento e indentado.
Tabelas de dados
As tabelas são adicionadas através de: ShapeCollection.AddTable, que aceita largura de coluna e altura das linhas como matrizes. O retorno é feito por: Table Objeto fornece acesso a: Rows, Columns, e 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);
// Set text in a cell
table.Rows[0][0].TextFrame.Text = "Header 1";
table.Rows[0][1].TextFrame.Text = "Header 2";
table.Rows[0][2].TextFrame.Text = "Header 3";
// Merge cells
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);
// Style presets
table.StylePreset = TableStylePreset.MediumStyle2Accent1;
Salvar apresentações
A Comissão Presentation.Save O método escreve o documento em um arquivo ou fluxo. SaveFormat enum especifica o formato de saída. PPTX é o principal formato suportado para a saída .
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);
Pode também passar um SaveOptions Objeto para controlo adicional sobre a saída.
Começo rápido
Instalar o pacote através da CLI .NET:
dotnet add package aspose.slides.foss
Em seguida, crie e salve uma apresentação 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.TextFrame.Text = "Quarterly Report";
// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 120, 600, 300);
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
body.TextFrame.Paragraphs.Add(para);
// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);
Formatos suportados
| Formatos de imagem | Extensão | Leia. | Escrever . |
|---|---|---|---|
| PPTX | .pptx | - Sim , sim . | - Sim , sim . |
| PPSX | .ppsx | Não, não. | Planeado |
| PPTM | .pptm | Não, não. | Planeado |
| POTX | .potx | Não, não. | Planeado |
| ODP | .odp | Não, não. | Planeado |
| FODP | .fodp | Não, não. | Planeado |
Nota: Atualmente, apenas a exportação PPTX é implementada. Existem outros valores de formato no sistema de formatos para o PC (PPT).
SaveFormatA Comissão Europeia tem em conta a existência de um sistema de controlo da compatibilidade com os sistemas de comunicação.Save()O método sempre produz a saída PPTX, independentemente do parâmetro de formato. Legacy.pptO formato binário não é suportado.
Open Source & Licenciamento
Aspose.Slides FOSS for .NET is released under the MIT license. The full source code is available on GitHub.Você pode usá-lo em projetos comerciais e de código aberto, modificar o código e redistribuí-la sem restrições. Não é necessário nenhuma chave API, arquivo de licença ou registro.
Começar a Fazer
- Guia de Desenvolvedores: Docs.aspose.org/slides/net/ – tutoriais e documentação conceitual.
- Base de conhecimento: kb.aspose.org/slides/net/ – FAQs e artigos de instruções.
- Referência API: Referência.aspose.org/slides/net/ – referência completa de classe e método.