บันทึกการนำเสนอใน JavaScript
ภาพรวม
Open Presentations in JavaScript อธิบายวิธีใช้คลาส Presentation เพื่อเปิดการนำเสนอ บทความนี้อธิบายวิธีสร้างและบันทึกการนำเสนอ คลาส Presentation มีเนื้อหาของการนำเสนอ ไม่ว่าคุณจะสร้างการนำเสนอจากศูนย์หรือแก้ไขการนำเสนอที่มีอยู่แล้ว คุณจะต้องบันทึกเมื่อทำเสร็จแล้ว ด้วย Aspose.Slides สำหรับ Node.js คุณสามารถบันทึกเป็น ไฟล์ หรือ สตรีม บทความนี้อธิบายวิธีต่าง ๆ ในการบันทึกการนำเสนอ
บันทึกการนำเสนอเป็นไฟล์
บันทึกการนำเสนอเป็นไฟล์โดยเรียกเมธอด save ของคลาส Presentation ส่งชื่อไฟล์และรูปแบบการบันทึกให้เมธอด ตัวอย่างต่อไปนี้แสดงวิธีบันทึกการนำเสนอด้วย Aspose.Slides
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ.
let presentation = new aspose.slides.Presentation();
try {
// ทำงานบางอย่างที่นี่...
// บันทึกการนำเสนอเป็นไฟล์.
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
บันทึกการนำเสนอเป็นสตรีม
คุณสามารถบันทึกการนำเสนอเป็นสตรีมโดยส่งสตรีมเอาต์พุตให้กับเมธอด save ของคลาส Presentation การนำเสนอสามารถเขียนไปยังสตรีมประเภทต่าง ๆ ได้ ในตัวอย่างด้านล่าง เราได้สร้างการนำเสนอใหม่และบันทึกเป็นสตรีมไฟล์
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ.
let presentation = new aspose.slides.Presentation();
try {
let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
try {
// บันทึกการนำเสนอลงในสตรีม.
presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
} finally {
fileStream.close();
}
} finally {
presentation.dispose();
}
บันทึกการนำเสนอด้วยประเภทมุมมองที่กำหนดล่วงหน้า
Aspose.Slides ให้คุณตั้งค่ามุมมองเริ่มต้นที่ PowerPoint ใช้เมื่อเปิดการนำเสนอที่สร้างขึ้นผ่านคลาส ViewProperties ใช้เมธอด setLastView พร้อมค่าจาก enum ViewType
let presentation = new aspose.slides.Presentation();
try {
presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView);
presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
บันทึกการนำเสนอในรูปแบบ 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
let options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์การนำเสนอ.
let presentation = new aspose.slides.Presentation();
try {
// บันทึกการนำเสนอในรูปแบบ Strict Office Open XML.
presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
บันทึกการนำเสนอในรูปแบบ Office Open XML ในโหมด Zip64
ไฟล์ Office Open XML คือไฟล์ ZIP ที่กำหนดขีดจำกัด 4 GB (2^32 ไบต์) สำหรับขนาดไฟล์ที่ไม่ได้บีบอัด, ขนาดไฟล์ที่บีบอัด, และขนาดรวมของเอกสาร นอกจากนี้ยังจำกัดจำนวนไฟล์ในเอกสารไม่เกิน 65 535 (2^16‑1) ไฟล์ รูปแบบขยาย Zip64 จะเพิ่มขีดจำกัดเหล่านี้เป็น 2^64
เมธอด PptxOptions.setZip64Mode ให้คุณเลือกใช้ส่วนขยายรูปแบบ ZIP64 เมื่อบันทึกไฟล์ Office Open XML
เมธอดนี้สามารถใช้กับโหมดต่อไปนี้:
- IfNecessary ใช้ส่วนขยายรูปแบบ ZIP64 เฉพาะเมื่อการนำเสนอเกินขีดจำกัดข้างต้น นี่คือโหมดเริ่มต้น
- Never ไม่ใช้ส่วนขยายรูปแบบ ZIP64 เลย
- Always ใช้ส่วนขยายรูปแบบ ZIP64 เสมอ
โค้ดต่อไปนี้แสดงวิธีบันทึกการนำเสนอเป็น PPTX พร้อมเปิดใช้ส่วนขยายรูปแบบ ZIP64:
let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always);
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions);
} finally {
presentation.dispose();
}
NOTE
เมื่อบันทึกโดยใช้ Zip64Mode.Never จะมีการโยน PptxException หากไม่สามารถบันทึกการนำเสนอในรูปแบบ ZIP32 ได้บันทึกการนำเสนอโดยไม่รีเฟรชภาพย่อ
เมธอด PptxOptions.setRefreshThumbnail ควบคุมการสร้างภาพย่อเมื่อบันทึกการนำเสนอเป็น PPTX:
- หากตั้งค่าเป็น
trueภาพย่อจะถูกรีเฟรชขณะบันทึก นี่เป็นค่าเริ่มต้น - หากตั้งค่าเป็น
falseภาพย่อปัจจุบันจะถูกคงไว้ หากการนำเสนอไม่มีภาพย่อ จะไม่มีการสร้างภาพย่อ
ในโค้ดด้านล่าง การนำเสนอถูกบันทึกเป็น PPTX โดยไม่รีเฟรชภาพย่อของมัน
let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setRefreshThumbnail(false);
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions);
}
finally {
presentation.dispose();
}
Info
ตัวเลือกนี้ช่วยลดเวลาที่ใช้ในการบันทึกการนำเสนอในรูปแบบ PPTXบันทึกการอัปเดตความคืบหน้าเป็นเปอร์เซ็นต์
การรายงานความคืบหน้าในการบันทึกกำหนดค่าผ่านเมธอด setProgressCallback ของ SaveOptions และคลาสย่อยของมัน ให้จัดหา Java proxy ที่ทำตามอินเทอร์เฟซ IProgressCallback ระหว่างการส่งออก คอลแบ็กจะรับการอัปเดตเปอร์เซ็นต์เป็นระยะ
โค้ดตัวอย่างต่อไปนี้แสดงวิธีใช้ IProgressCallback
const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
reporting: function(progressValue) {
// ใช้ค่าร้อยละของความคืบหน้าที่นี่.
const progress = Math.floor(progressValue);
console.log(`${progress}% of the file has been converted.`);
}
});
let saveOptions = new aspose.slides.PdfOptions();
saveOptions.setProgressCallback(ExportProgressHandler);
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions);
} finally {
presentation.dispose();
}
Info
Aspose ได้พัฒนาแอป PowerPoint Splitter ฟรี โดยใช้ API ของตนเอง แอปนี้ช่วยให้คุณแยกการนำเสนอเป็นหลายไฟล์โดยบันทึกสไลด์ที่เลือกเป็นไฟล์ PPTX หรือ PPT ใหม่คำถามที่พบบ่อย
Is “fast save” (incremental save) supported so only changes are written?
ไม่ การบันทึกจะสร้างไฟล์เป้าหมายเต็มรูปแบบทุกครั้ง; การบันทึกแบบเพิ่มส่วน “fast save” ไม่ได้รับการสนับสนุน
Is it thread-safe to save the same Presentation instance from multiple threads?
ไม่ อินสแตนซ์ของ Presentation ไม่มีความปลอดภัยต่อหลายเธรด ควรบันทึกจากเธรดเดียว
What happens to hyperlinks and externally linked files when saving?
Hyperlinks จะถูกเก็บไว้ ไฟล์ที่เชื่อมโยงจากภายนอก (เช่น วิดีโอที่อ้างอิงด้วยเส้นทาง relative) จะไม่ถูกคัดลอกรวมโดยอัตโนมัติ — ควรตรวจสอบให้เส้นทางที่อ้างอิงยังคงเข้าถึงได้
Can I set/save document metadata (Author, Title, Company, Date)?
ใช่ คุณสมบัติมาตรฐานของ document properties ได้รับการสนับสนุนและจะถูกเขียนลงในไฟล์เมื่อบันทึก