כיצד לשמור מצגות ב‑.NET
Aspose.Slides FOSS for .NET שומר מצגות באופן בלעדי בפורמט .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: שמור לזרם
המתודה 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 שהיא אינה מזהה.