วิธีบันทึกงานนำเสนอใน .NET

วิธีบันทึกงานนำเสนอใน .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");

รูปแบบการบันทึกที่รองรับ

FormatEnum ValueSupported
PPTX (Office Open XML)SaveFormat.Pptxใช่
PDFN/Aไม่
HTMLN/Aไม่
SVGN/Aไม่
PNG / JPEGN/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 ใด ๆ ที่มันไม่รู้จัก.


ดูเพิ่มเติม

 ภาษาไทย