Pengenalan
Aspose.Slides FOSS for .NET menyediakan satu set kelas yang komprehensif untuk menguruskan persembahan PowerPoint sepenuhnya dalam C#. Perpustakaan ini membolehkan anda mencipta fail .pptx baru dari awal, memuatkan yang sedia ada, memanipulasi slaid dan bentuk, serta menyimpan hasilnya kembali ke cakera – semua tanpa memasang Microsoft Office atau sebarang kebergantungan luaran.
Pakej NuGet Aspose.Slides.Foss menyasarkan .NET 9.0 dan berjalan secara serupa pada Windows, macOS, Linux, dan kontena Docker. Ia dikeluarkan di bawah MIT license, jadi anda boleh menggunakannya dalam projek komersial dan sumber terbuka tanpa sekatan.
Pos ini membimbing melalui keupayaan pengurusan persembahan teras: bekerja dengan slaid, membina hierarki bentuk, menyusun teks, mengurus jadual, dan menyimpan ke PPTX.
Apa yang Termasuk
Mencipta dan Memuatkan Pembentangan
Kelas Presentation adalah titik masuk untuk setiap operasi. Anda boleh membuat persembahan kosong, memuat satu daripada laluan fail, atau membaca daripada aliran. Kelas ini melaksanakan IDisposable, jadi membungkusnya dalam pernyataan using memastikan sumber dibebaskan dengan betul.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
Objek Presentation memaparkan hierarki slaid penuh melalui sifat-sifat seperti Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images, dan NotesSize.
Bekerja dengan Slides
SlideCollection yang dikembalikan oleh Presentation.Slides menyokong menambah, mengklon, menyisipkan, menyusun semula, dan menghapuskan slaid. Anda boleh mengklon slaid dalam persembahan yang sama atau merentasi persembahan sambil mengekalkan atau memetakan semula susun atur.
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;
Setiap Slide mendedahkan SlideNumber, Hidden, LayoutSlide, NotesSlideManager, dan Name. Anda boleh mengulangi koleksi dengan foreach atau menukarnya kepada tatasusunan dengan ToArray().
Bentuk dan AutoShapes
Setiap slaid mengandungi ShapeCollection yang boleh diakses melalui Slide.Shapes. Koleksi ini menyediakan kaedah kilang untuk jenis bentuk yang paling biasa.
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();
Kaedah AddAutoShape dan InsertAutoShape menerima nilai enum ShapeType serta koordinat kedudukan dan saiz. AddConnector, InsertConnector, AddPictureFrame, dan InsertPictureFrame mengikuti corak yang sama.
Text: Perenggan dan Bahagian
Teks dalam persembahan berada di dalam TextFrame, yang mengandungi ParagraphCollection. Setiap Paragraph menyimpan PortionCollection objek Portion yang mewakili jalur teks individu dengan pemformatan bebas.
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);
Setiap Portion mempunyai sifat PortionFormat untuk mengawal fon, saiz, tebal/miring, warna, garis bawah, dan atribut peringkat aksara lain. ParagraphFormat mengawal penjajaran, gaya bulet, jarak, dan penjarakan.
Jadual
Jadual ditambah melalui ShapeCollection.AddTable, yang menerima lebar lajur dan tinggi baris sebagai tatasusunan. Objek Table yang dikembalikan menyediakan akses kepada Rows, Columns, dan objek Cell individu.
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;
Menyimpan Pembentangan
Kaedah Presentation.Save menulis dokumen ke fail atau aliran. Enum SaveFormat menentukan format output. PPTX ialah format output utama yang disokong.
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);
Anda juga boleh menghantar objek SaveOptions untuk kawalan tambahan ke atas output.
Mula Cepat
Pasang pakej melalui .NET CLI:
dotnet add package aspose.slides.foss
Kemudian buat dan simpan persembahan minimal:
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);
Format yang Disokong
| Format | Sambungan | Baca | Tulis |
|---|---|---|---|
| PPTX | .pptx | Ya | Ya |
| PPSX | .ppsx | Tidak | Ya |
| PPTM | .pptm | Tidak | Ya |
| POTX | .potx | Tidak | Ya |
| ODP | .odp | Tidak | Ya |
| FODP | .fodp | Tidak | Ya |
Nota: Perpustakaan ini membaca dan menulis PPTX secara asli. Format lain yang disenaraikan dalam enum
SaveFormatdiisytiharkan pada peringkat API; kesetiaan eksport sebenar mungkin berbeza. Format binari warisan.ppttidak disokong.
Sumber Terbuka & Pelesenan
Aspose.Slides FOSS untuk .NET dikeluarkan di bawah lesen MIT. Kod sumber penuh tersedia di GitHub. Anda boleh menggunakannya dalam projek komersial dan sumber terbuka, mengubah suai kod, dan mengedarkannya tanpa sekatan. Tiada kunci API, fail lesen, atau pendaftaran diperlukan.
Mula Menggunakan
- Developer Guide: docs.aspose.org/slides/net/ – tutorial dan dokumentasi konseptual.
- Knowledge Base: kb.aspose.org/slides/net/ – Soalan Lazim (FAQ) dan artikel cara-cara.
- API Reference: reference.aspose.org/slides/net/ – rujukan penuh kelas dan kaedah.