บันทึกพรีเซนเทชันใน .NET
ภาพรวม
Open Presentations in C# อธิบายวิธีการใช้คลาส Presentation เพื่อเปิดไฟล์พรีเซนเทชัน บทความนี้อธิบายวิธีสร้างและบันทึกพรีเซนเทชัน คลาส Presentation มีเนื้อหาของพรีเซนเทชัน ไม่ว่าคุณจะสร้างพรีเซนเทชันตั้งแต่ต้นหรือแก้ไขพรีเซนเทชันที่มีอยู่แล้ว คุณก็ต้องการบันทึกเมื่อทำเสร็จแล้ว ด้วย Aspose.Slides for .NET คุณสามารถบันทึกเป็น ไฟล์ หรือ สตรีม บทความนี้อธิบายวิธีต่าง ๆ ในการบันทึกพรีเซนเทชัน
บันทึกพรีเซนเทชันเป็นไฟล์
บันทึกพรีเซนเทชันเป็นไฟล์โดยเรียกเมธอด Save ของคลาส Presentation ส่งชื่อไฟล์และรูปแบบการบันทึกไปยังเมธอด ตัวอย่างต่อไปนี้แสดงวิธีบันทึกพรีเซนเทชันด้วย Aspose.Slides
using Aspose.Slides;
using Aspose.Slides.Export;
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์พรีเซนเทชัน
using (Presentation presentation = new Presentation())
{
// ทำงานบางอย่างที่นี่...
// บันทึกพรีเซนเทชันเป็นไฟล์
presentation.Save("Output.pptx", SaveFormat.Pptx);
}
บันทึกพรีเซนเทชันเป็นสตรีม
คุณสามารถบันทึกพรีเซนเทชันเป็นสตรีมโดยส่งสตรีมผลลัพธ์ไปยังเมธอด Save ของคลาส Presentation พรีเซนเทชันสามารถเขียนลงสตรีมหลายประเภทได้ ในตัวอย่างด้านล่าง เราจะสร้างพรีเซนเทชันใหม่และบันทึกเป็นไฟล์สตรีม
using Aspose.Slides;
using Aspose.Slides.Export;
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์พรีเซนเทชัน
using (Presentation presentation = new Presentation())
{
using (FileStream fileStream = new FileStream("Output.pptx", FileMode.Create))
{
// บันทึกพรีเซนเทชันไปยังสตรีม.
presentation.Save(fileStream, SaveFormat.Pptx);
}
}
บันทึกพรีเซนเทชันด้วยประเภทมุมมองที่กำหนดล่วงหน้า
Aspose.Slides ให้คุณตั้งค่ามุมมองเริ่มต้นที่ PowerPoint ใช้เมื่อเปิดพรีเซนเทชันที่สร้างขึ้นผ่านคลาส ViewProperties ตั้งค่า property LastView ให้เป็นค่าหนึ่งจาก enumeration ViewType
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation presentation = new Presentation())
{
presentation.ViewProperties.LastView = ViewType.SlideMasterView;
presentation.Save("SlideMasterView.pptx", SaveFormat.Pptx);
}
บันทึกพรีเซนเทชันในรูปแบบ Strict Office Open XML
Aspose.Slides ให้คุณบันทึกพรีเซนเทชันในรูปแบบ Strict Office Open XML ใช้คลาส PptxOptions และตั้งค่า property conformance ขณะบันทึก หากคุณตั้งค่า Conformance.Iso29500_2008_Strict ไฟล์ผลลัพธ์จะถูกบันทึกในรูปแบบ Strict Office Open XML
ตัวอย่างด้านล่างสร้างพรีเซนเทชันและบันทึกในรูปแบบ Strict Office Open XML
using Aspose.Slides;
using Aspose.Slides.Export;
PptxOptions options = new PptxOptions()
{
Conformance = Conformance.Iso29500_2008_Strict
};
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์พรีเซนเทชัน.
using (Presentation presentation = new Presentation())
{
// บันทึกพรีเซนเทชันในรูปแบบ Strict Office Open XML.
presentation.Save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
}
บันทึกพรีเซนเทชันในรูปแบบ Office Open XML โหมด Zip64
ไฟล์ Office Open XML คือไฟล์ ZIP ที่กำหนดขีดจำกัด 4 GB (2^32 ไบต์) สำหรับขนาดไฟล์ที่ไม่ได้บีบอัด, ขนาดที่บีบอัดและขนาดรวมของ archive รวมถึงจำกัดจำนวนไฟล์ที่ 65 535 (2^16‑1) ไฟล์ ส่วนขยายรูปแบบ ZIP64 จะยกขีดจำกัดเหล่านี้เป็น 2^64
คุณสมบัติ IPptxOptions.Zip64Mode ให้คุณเลือกว่าจะใช้ส่วนขยายรูปแบบ ZIP64 เมื่อบันทึกไฟล์ Office Open XML หรือไม่
คุณสมบัตินี้ให้โหมดต่อไปนี้:
IfNecessaryใช้ส่วนขยายรูปแบบ ZIP64 เฉพาะเมื่อพรีเซนเทชันเกินขีดจำกัดข้างต้น นี่คือโหมดเริ่มต้นNeverไม่เคยใช้ส่วนขยายรูปแบบ ZIP64Alwaysใช้ส่วนขยายรูปแบบ ZIP64 เสมอ
โค้ดต่อไปนี้แสดงวิธีบันทึกพรีเซนเทชันเป็นไฟล์ PPTX พร้อมเปิดใช้ส่วนขยายรูปแบบ ZIP64:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("OutputZip64.pptx", SaveFormat.Pptx, new PptxOptions()
{
Zip64Mode = Zip64Mode.Always
});
}
NOTE
เมื่อคุณบันทึกด้วยZip64Mode.Never จะเกิด PptxException หากพรีเซนเทชันไม่สามารถบันทึกในรูปแบบ ZIP32 ได้.
บันทึกพรีเซนเทชันในรูปแบบ Office Open XML พร้อมระดับการบีบอัด
เมื่อทำงานกับพรีเซนเทชันขนาดใหญ่ คุณสามารถปรับระดับการบีบอัดเพื่อสมดุลขนาดไฟล์และเวลาประมวลผล ตามความต้องการคุณอาจต้องการประมวลผลที่เร็วขึ้นหรือไฟล์ผลลัพธ์ที่เล็กลง
Aspose.Slides มี property IPptxOptions.CompressionLevel ซึ่งให้คุณกำหนดระดับการบีบอัดที่ใช้เมื่อบันทึกพรีเซนเทชันในรูปแบบ Office Open XML
ระดับการบีบอัดต่อไปนี้พร้อมให้ใช้:
- None: ไม่ใช้การบีบอัด ไฟล์จะถูกเก็บไว้ตามต้นฉบับ
- Level1: การบีบอัดที่เร็วที่สุดโดยอัตราการบีบอัดต่ำสุด
- Level2: การบีบอัดที่เร็วกว่าโดยอัตราการบีบอัดดีขึ้นเล็กน้อยเมื่อเทียบกับ Level1
- Level3: ให้การบีบอัดดีกว่า Level2 พร้อมผลกระทบต่อเวลาประมวลผลระดับปานกลาง
- Level4: ให้การบีบอัดดีกว่า Level3
- Level5: ให้การบีบอัดที่ดีขึ้นเหนือ Level4 โดยใช้เวลาประมวลผลเพิ่มขึ้น
- Level6: การบีบอัดมาตรฐานที่ให้สมดุลที่ดีระหว่างความเร็วการประมวลผลและขนาดไฟล์ นี่คือ ระดับการบีบอัดเริ่มต้น
- Level7: ให้การบีบอัดดีกว่า Level6 แต่ประมวลผลช้า
- Level8: ให้การบีบอัดดีกว่า Level7
- Level9: การบีบอัดสูงสุด ผลออกมามีขนาดไฟล์เล็กที่สุดแต่ใช้เวลาประมวลผลนานที่สุด
ตัวอย่างต่อไปนี้แสดงวิธีบันทึกพรีเซนเทชันเป็นไฟล์ PPTX โดยไม่มีการบีบอัด:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation pres = new Presentation("Sample.pptx"))
{
pres.Save("Sample-out.pptx", SaveFormat.Pptx, new PptxOptions
{
CompressionLevel = CompressionLevel.None
});
}
ตัวอย่างนี้แสดงวิธีบันทึกพรีเซนเทชันเป็นไฟล์ PPTX ด้วย การบีบอัดสูงสุด:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation pres = new Presentation("Sample.pptx"))
{
pres.Save("Sample-level9.pptx", SaveFormat.Pptx, new PptxOptions
{
CompressionLevel = CompressionLevel.Level9
});
}
บันทึกพรีเซนเทชันโดยไม่รีเฟรชภาพย่อ
คุณสมบัติ PptxOptions.RefreshThumbnail ควบคุมการสร้างภาพย่อเมื่อบันทึกพรีเซนเทชันเป็น PPTX:
- หากตั้งค่าเป็น
trueภาพย่อจะถูกรีเฟรชระหว่างการบันทึก นี่เป็นค่าเริ่มต้น - หากตั้งค่าเป็น
falseภาพย่อปัจจุบันจะถูกคงไว้ หากพรีเซนเทชันไม่มีภาพย่อ จะไม่มีการสร้างภาพย่อ
ในโค้ดด้านล่าง พรีเซนเทชันจะถูกบันทึกเป็น PPTX โดยไม่รีเฟรชภาพย่อของมัน.
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("Output.pptx", SaveFormat.Pptx, new PptxOptions()
{
RefreshThumbnail = false
});
}
Info
ตัวเลือกนี้ช่วยลดเวลาที่ต้องใช้ในการบันทึกพรีเซนเทชันเป็นรูปแบบ PPTX.บันทึกอัปเดตความคืบหน้าเป็นเปอร์เซ็นต์
อินเทอร์เฟซ IProgressCallback ใช้ผ่าน property ProgressCallback ที่เปิดเผยโดยอินเทอร์เฟซ ISaveOptions และคลาสนามธรรม SaveOptions ให้กำหนดการทำงานของ IProgressCallback ให้กับ ProgressCallback เพื่อรับการอัปเดตความคืบหน้าในการบันทึกเป็นเปอร์เซ็นต์
โค้ดตัวอย่างต่อไปนี้แสดงวิธีใช้ IProgressCallback.
using Aspose.Slides;
using Aspose.Slides.Export;
ISaveOptions saveOptions = new PdfOptions();
saveOptions.ProgressCallback = new ExportProgressHandler();
using (Presentation presentation = new Presentation("Sample.pptx"))
{
presentation.Save("Output.pdf", SaveFormat.Pdf, saveOptions);
}
using Aspose.Slides;
class ExportProgressHandler : IProgressCallback
{
public void Reporting(double progressValue)
{
// ใช้ค่าร้อยละของความคืบหน้าในที่นี้.
int progress = Convert.ToInt32(progressValue);
Console.WriteLine(progress + "% of the file has been converted.");
}
}
Info
Aspose ได้พัฒนา แอปฟรี PowerPoint Splitter โดยใช้ API ของตนเอง แอปนี้ให้คุณแยกพรีเซนเทชันเป็นหลายไฟล์โดยบันทึกสไลด์ที่เลือกเป็นไฟล์ PPTX หรือ PPT ใหม่.คำถามที่พบบ่อย
รองรับการ “บันทึกเร็ว” (บันทึกเชิงเพิ่ม) ที่เขียนเฉพาะการเปลี่ยนแปลงหรือไม่?
ไม่ การบันทึกจะสร้างไฟล์เป้าหมายเต็มทุกครั้ง; การบันทึกเชิงเพิ่ม “บันทึกเร็ว” ไม่ได้รับการสนับสนุน.
สามารถบันทึกอินสแตนซ์ Presentationเดียวจากหลายเธรดได้อย่างปลอดภัยหรือไม่?
ไม่ อินสแตนซ์ Presentation ไม่เป็น thread‑safe (/slides/th/net/multithreading/); ควรบันทึกจากเธรดเดียว.
ลิงก์และไฟล์ที่ลิงก์จากภายนอกจะเกิดอะไรเมื่อบันทึก?
Hyperlinks จะถูกคงไว้ ไฟล์ที่ลิงก์จากภายนอก (เช่น วิดีโอที่ใช้เส้นทางสัมพันธ์) จะไม่ถูกคัดลอกโดยอัตโนมัติ — โปรดตรวจสอบให้เส้นทางที่อ้างอิงยังคงเข้าถึงได้.
ฉันสามารถตั้งค่า/บันทึกเมตาดาต้าเอกสาร (ผู้เขียน, ชื่อเรื่อง, บริษัท, วันที่) ได้หรือไม่?
ได้ คุณสมบัติเอกสารมาตรฐาน (/slides/th/net/presentation-properties/) ได้รับการสนับสนุนและจะถูกเขียนลงไฟล์เมื่อบันทึก.