איך לשמור מצגות ב-.NET
Aspose.Slides FOSS for .NET saves presentations exclusively to .pptx פורמט באמצעות prs.Save(path, SaveFormat.Pptx). מדריך זה מכסה את תבנית השמירה הנכונה, שמירה לנתיב שונה, שמירה לזרם, ושגיאות נפוצות הקשורות לשמירה.
מדריך שלב אחר שלב
שלב 1: התקנת החבילה
dotnet add package Aspose.Slides.Fossשלב 2: פתיחה או יצירת מצגת
תמיד השתמש ב using הצהרה. קריאת השמירה חייבת להתרחש לפני שהאובייקט משוחרר.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);שלב 3: שמור לאחר כל השינויים
מקם את Save() קריאה לאחר שכל השינויים הושלמו, לפני ה using הטווח מסתיים.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);שלב 4: שמור לנתיב שונה
העבר נתיב פלט שונה כדי ליצור קובץ חדש מבלי לשנות את המקורי:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);ה template.pptx קובץ אינו משתנה; customized.pptx נוצר (או נכתב מחדש אם הוא כבר קיים).
שלב 5: שמירה ל‑Stream
ה Presentation.Save המתודה מקבלת גם Stream:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");שלב 6: אימות הפלט
לאחר שמירה לקובץ, בדוק שהוא קיים:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");פורמט שמירה נתמך
| פורמט | ערך Enum | נתמך |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | כן |
| N/A | לא | |
| HTML | N/A | לא |
| SVG | N/A | לא |
| PNG / JPEG | N/A | לא |
| ODP (OpenDocument) | N/A | לא |
נתמך רק PPTX. פרמטר הפורמט מתעלם כרגע; כל המצגות נשמרות כ‑PPTX ללא קשר ל‑SaveFormat שצוין.
בעיות נפוצות ותיקונים
IOException: The process cannot access the file
קובץ הפלט פתוח ביישום אחר (למשל, PowerPoint מחזיק את הקובץ פתוח). סגור את הקובץ ביישומים אחרים לפני השמירה.
הקובץ נוצר אך נראה ריק או פגום
ודא prs.Save() נקרא לפני שהאובייקט מושמד. אחרי Dispose() מתבצע, קריאות נוספות יכשלו או ייצרו פלט פגום.
פורמט פלט בלתי צפוי בעת שמירה
העברת כל SaveFormat ערך שאינו SaveFormat.Pptx אינו זורק חריגה — פרמטר הפורמט מתעלם בשקט והקובץ תמיד נשמר כ‑PPTX. אין NotSupportedException עבור ערך פורמט לא מזוהה.
שאלות נפוצות
האם אני יכול לשמור לאותו קובץ שפתחת?
כן. שמירה לאותו הנתיב מחליפה את הקובץ המקורי:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalהאם השמירה משמרת תוכן שלא שיניתי?
כן. חלקי XML לא ידועים מהקובץ המקורי נשמרים במדויק. הספרייה רק מסדרת את החלקים של מודל המסמך שהיא מבינה, ומעבירה הלאה כל XML שהיא אינה מזהה.