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

FormatSambunganBacaTulis
PPTX.pptxYaYa
PPSX.ppsxTidakYa
PPTM.pptmTidakYa
POTX.potxTidakYa
ODP.odpTidakYa
FODP.fodpTidakYa

Nota: Perpustakaan ini membaca dan menulis PPTX secara asli. Format lain yang disenaraikan dalam enum SaveFormat diisytiharkan pada peringkat API; kesetiaan eksport sebenar mungkin berbeza. Format binari warisan .ppt tidak 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