บทนำ
Aspose.Slides FOSS for .NET มีชุดคลาสที่ครอบคลุมสำหรับการจัดการงานนำเสนอ PowerPoint อย่างเต็มรูปแบบด้วย C# ไลบรารีนี้ช่วยให้คุณสร้างไฟล์ .pptx ใหม่ตั้งแต่ต้น โหลดไฟล์ที่มีอยู่แล้ว ปรับแต่งสไลด์และรูปร่าง และบันทึกผลลัพธ์กลับไปยังดิสก์ – ทั้งหมดโดยไม่ต้องติดตั้ง Microsoft Office หรือพึ่งพาไลบรารีภายนอกใด ๆ
แพคเกจ NuGet Aspose.Slides.Foss รองรับ .NET 9.0 และทำงานเหมือนกันบน Windows, macOS, Linux และคอนเทนเนอร์ Docker. แพคเกจนี้เผยแพร่ภายใต้สัญญาอนุญาต MIT ดังนั้นคุณจึงสามารถใช้ในโครงการเชิงพาณิชย์และโอเพนซอร์สได้โดยไม่มีข้อจำกัด.
โพสต์นี้อธิบายการจัดการการนำเสนอหลัก: การทำงานกับสไลด์, การสร้างลำดับชั้นของรูปร่าง, การจัดระเบียบข้อความ, การจัดการตาราง, และการบันทึกเป็น PPTX.
สิ่งที่รวมอยู่
การสร้างและการโหลดงานนำเสนอ
คลาส Presentation เป็นจุดเริ่มต้นสำหรับทุกการดำเนินการ คุณสามารถสร้างการนำเสนอเปล่า โหลดจากเส้นทางไฟล์ หรืออ่านจากสตรีมได้ คลาสนี้ implements IDisposable ดังนั้นการห่อหุ้มด้วยคำสั่ง using จะทำให้แน่ใจว่าทรัพยากรถูกปล่อยอย่างเหมาะสม.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
อ็อบเจ็กต์ Presentation เปิดเผยโครงสร้างสไลด์ทั้งหมดผ่านคุณสมบัติต่าง ๆ เช่น Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images และ NotesSize.
ทำงานกับ Slides
SlideCollection ที่ส่งคืนโดย Presentation.Slides รองรับการเพิ่ม, การทำสำเนา, การแทรก, การจัดลำดับใหม่, และการลบสไลด์ คุณสามารถทำสำเนาสไลด์ภายในงานนำเสนอเดียวกันหรือข้ามงานนำเสนอได้โดยคงไว้หรือทำการแมปเลย์เอาต์ใหม่.
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;
แต่ละ Slide เปิดเผย SlideNumber, Hidden, LayoutSlide, NotesSlideManager และ Name. คุณสามารถวนซ้ำคอลเลกชันด้วย foreach หรือแปลงเป็นอาร์เรย์ด้วย ToArray().
รูปร่างและรูปร่างอัตโนมัติ
แต่ละสไลด์มี ShapeCollection ที่เข้าถึงได้ผ่าน Slide.Shapes. คอลเลกชันนี้ให้เมธอดแฟกทอรีสำหรับประเภทรูปร่างที่พบบ่อยที่สุด.
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();
เมธอด AddAutoShape และ InsertAutoShape รับค่า enum ShapeType พร้อมพิกัดตำแหน่งและขนาด. AddConnector, InsertConnector, AddPictureFrame และ InsertPictureFrame ใช้รูปแบบเดียวกัน.
Text: ย่อหน้าและส่วน
ข้อความในงานนำเสนออยู่ภายใน TextFrame ซึ่งประกอบด้วย ParagraphCollection แต่ละ Paragraph เก็บ PortionCollection ของวัตถุ Portion ที่เป็นตัวแทนของการรันข้อความแต่ละส่วนพร้อมการจัดรูปแบบที่เป็นอิสระ.
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);
แต่ละ Portion มีคุณสมบัติ PortionFormat สำหรับควบคุมแบบอักษร, ขนาด, ตัวหนา/ตัวเอียง, สี, การขีดเส้นใต้, และคุณลักษณะระดับอักขระอื่น ๆ. ParagraphFormat ควบคุมการจัดแนว, รูปแบบสัญลักษณ์หัวข้อ, ระยะห่าง, และการเยื้อง.
ตาราง
ตารางจะถูกเพิ่มผ่าน ShapeCollection.AddTable ซึ่งรับความกว้างของคอลัมน์และความสูงของแถวเป็นอาร์เรย์. วัตถุ Table ที่ส่งกลับมาจะให้การเข้าถึง Rows, Columns และวัตถุ Cell แยกแต่ละรายการ.
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;
การบันทึกงานนำเสนอ
เมธอด Presentation.Save เขียนเอกสารไปยังไฟล์หรือสตรีม. enum SaveFormat ระบุรูปแบบการส่งออก. PPTX เป็นรูปแบบการส่งออกที่รองรับหลัก.
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);
คุณยังสามารถส่งผ่านอ็อบเจ็กต์ SaveOptions เพื่อควบคุมผลลัพธ์เพิ่มเติมได้.
เริ่มต้นอย่างรวดเร็ว
ติดตั้งแพคเกจผ่าน .NET CLI:
dotnet add package aspose.slides.foss
จากนั้นสร้างและบันทึกการนำเสนอแบบพื้นฐาน:
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 | Extension | Read | Write |
|---|---|---|---|
| PPTX | .pptx | ใช่ | ใช่ |
| PPSX | .ppsx | ไม่ | ใช่ |
| PPTM | .pptm | ไม่ | ใช่ |
| POTX | .potx | ไม่ | ใช่ |
| ODP | .odp | ไม่ | ใช่ |
| FODP | .fodp | ไม่ | ใช่ |
หมายเหตุ: ไลบรารีสามารถอ่านและเขียน PPTX ได้โดยตรง รูปแบบอื่นที่ระบุใน enum
SaveFormatถูกประกาศระดับ API; ความแม่นยำของการส่งออกจริงอาจแตกต่างกัน รูปแบบไบนารี Legacy.pptไม่ได้รับการสนับสนุน.
โอเพนซอร์สและการให้สิทธิ์
Aspose.Slides FOSS for .NET ถูกเผยแพร่ภายใต้ใบอนุญาต MIT. โค้ดต้นฉบับเต็มพร้อมให้ใช้งานบน GitHub. คุณสามารถใช้ในโครงการเชิงพาณิชย์และโอเพนซอร์ส, แก้ไขโค้ด, และแจกจ่ายต่อได้โดยไม่มีข้อจำกัด. ไม่ต้องใช้คีย์ API, ไฟล์ใบอนุญาต, หรือการลงทะเบียน.
เริ่มต้น
- คู่มือสำหรับนักพัฒนา: docs.aspose.org/slides/net/ – บทแนะนำและเอกสารเชิงแนวคิด.
- ฐานความรู้: kb.aspose.org/slides/net/ – คำถามที่พบบ่อยและบทความวิธีทำ.
- อ้างอิง API: reference.aspose.org/slides/net/ – อ้างอิงคลาสและเมธอดทั้งหมด.