วิธีบันทึกงานนำเสนอใน .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");รูปแบบการบันทึกที่รองรับ
| Format | Enum Value | Supported |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | ใช่ |
| N/A | ไม่ | |
| HTML | N/A | ไม่ |
| SVG | N/A | ไม่ |
| PNG / JPEG | N/A | ไม่ |
| ODP (OpenDocument) | N/A | ไม่ |
รองรับเฉพาะ PPTX เท่านั้น พารามิเตอร์ format ปัจจุบันจะถูกละเลย; การนำเสนอทั้งหมดจะถูกบันทึกเป็น 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 ใด ๆ ที่มันไม่รู้จัก.