מבוא
Aspose.Slides FOSS for .NET מספקת סט מקיף של מחלקות לניהול מצגות PowerPoint באופן מלא ב‑C#. הספרייה מאפשרת ליצור קבצי .pptx חדשים מאפס, לטעון קבצים קיימים, לתפעל שקופיות וצורות, ולשמור את התוצאה חזרה לדיסק — כל זאת ללא צורך בהתקנת Microsoft Office או תלות חיצונית.
החבילה Aspose.Slides.Foss של NuGet ממוקדת .NET 9.0 ופועלת באופן זהה ב‑Windows, macOS, Linux ובמכולות Docker. היא משוחררת תחת רישיון MIT, ולכן ניתן להשתמש בה בפרויקטים מסחריים וקוד פתוח ללא מגבלות.
פוסט זה מסביר את יכולות ניהול המצגת המרכזיות: עבודה עם שקופיות, בניית היררכיות של צורות, ארגון טקסט, ניהול טבלאות ושמירה ל‑PPTX.
מה כלול
יצירת והטענת מצגות
המחלקה Presentation היא נקודת הכניסה לכל פעולה. ניתן ליצור מצגת ריקה, לטעון אחת ממסלול קובץ, או לקרוא מזרם. המחלקה מממשת 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().
צורות ו-AutoShapes
כל שקף מכיל 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 פועלות באותו דפוס.
טקסט: פסקאות וחלקים
טקסט במצגת נמצא בתוך 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 כותבת את המסמך לקובץ או לזרם. האינום 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);
פורמטים נתמכים
| פורמט | הרחבה | קריאה | כתיבה |
|---|---|---|---|
| PPTX | .pptx | כן | כן |
| PPSX | .ppsx | לא | כן |
| PPTM | .pptm | לא | כן |
| POTX | .potx | לא | כן |
| ODP | .odp | לא | כן |
| FODP | .fodp | לא | כן |
הערה: הספרייה קוראת וכותבת PPTX באופן מקורי. פורמטים אחרים המופיעים ב‑
SaveFormatenum מוגדרים ברמת ה‑API; ייתכן שהדיוק ביצוא בפועל ישתנה. פורמט בינארי ישן.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/ – הפנייה מלאה למחלקות ולמתודות.