บันทึกงานนำเสนอใน Java
ภาพรวม
Open Presentations in Java บรรยายวิธีใช้คลาส Presentation เพื่อเปิดงานนำเสนอ บทความนี้อธิบายวิธีสร้างและบันทึกงานนำเสนอ คลาส Presentation มีเนื้อหาของงานนำเสนอ ไม่ว่าคุณจะสร้างงานนำตั้งแต่ต้นหรือแก้ไขงานที่มีอยู่แล้ว คุณจะต้องบันทึกเมื่อทำเสร็จ ด้วย Aspose.Slides for Java คุณสามารถบันทึกเป็น file หรือ stream บทความนี้อธิบายวิธีต่าง ๆ ในการบันทึกงานนำเสนอ
บันทึกงานนำเสนอเป็นไฟล์
บันทึกงานนำเสนอเป็นไฟล์โดยเรียกเมธอด save ของคลาส Presentation. ส่งชื่อไฟล์และรูปแบบการบันทึกไปยังเมธอด ตัวอย่างต่อไปนี้แสดงวิธีบันทึกงานนำเสนอด้วย Aspose.Slides
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์งานนำเสนอ
Presentation presentation = new Presentation();
try {
// ทำงานบางอย่างที่นี่...
// บันทึกงานนำเสนอเป็นไฟล์
presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
บันทึกงานนำเสนอเป็นสตรีม
คุณสามารถบันทึกงานนำเสนอเป็นสตรีมโดยส่ง output stream ไปยังเมธอด save ของคลาส Presentation. งานนำเสนอสามารถเขียนไปยังสตรีมหลายประเภท ในตัวอย่างด้านล่าง เราสร้างงานนำเสนอใหม่และบันทึกเป็นไฟล์สตรีม
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์งานนำเสนอ
Presentation presentation = new Presentation();
try {
OutputStream fileStream = new FileOutputStream("Output.pptx");
try {
// บันทึกงานนำเสนอไปยังสตรีม
presentation.save(fileStream, SaveFormat.Pptx);
} finally {
fileStream.close();
}
} finally {
presentation.dispose();
}
บันทึกงานนำเสนอด้วยมุมมองที่กำหนดไว้ล่วงหน้า
Aspose.Slides ให้คุณตั้งค่ามุมมองเริ่มต้นที่ PowerPoint ใช้เมื่อเปิดงานนำเสนอที่สร้างขึ้นผ่านคลาส ViewProperties. ใช้เมธอด setLastView พร้อมค่าจาก enumeration ViewType
Presentation presentation = new Presentation();
try {
presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
บันทึกงานนำเสนอในรูปแบบ Strict Office Open XML
Aspose.Slides ให้คุณบันทึกงานนำเสนอในรูปแบบ Strict Office Open XML ใช้คลาส PptxOptions แล้วตั้งค่าคุณสมบัติ conformance ขณะบันทึก หากคุณตั้งค่า Conformance.Iso29500_2008_Strict ไฟล์เอาต์พุตจะถูกบันทึกในรูปแบบ Strict Office Open XML
ตัวอย่างด้านล่างสร้างงานนำเสนอและบันทึกในรูปแบบ Strict Office Open XML
PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์งานนำเสนอ
Presentation presentation = new Presentation();
try {
// บันทึกงานนำเสนอในรูปแบบ Strict Office Open XML
presentation.save("StrictOfficeOpenXml.pptx", 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
เมธอด IPptxOptions.setZip64Mode ให้คุณเลือกว่าจะใช้ส่วนขยายรูปแบบ ZIP64 หรือไม่ขณะบันทึกไฟล์ Office Open XML
เมธอดนี้สามารถใช้ร่วมกับโหมดต่อไปนี้:
- IfNecessary ใช้ส่วนขยายรูปแบบ ZIP64 เฉพาะเมื่อไฟล์นำเสนอเกินขีดจำกัดด้านบน นี่คือโหมดเริ่มต้น
- Never ไม่ใช้ส่วนขยายรูปแบบ ZIP64 เลย
- Always ใช้ส่วนขยายรูปแบบ ZIP64 เสมอ
โค้ดต่อไปนี้แสดงวิธีบันทึกงานนำเสนอเป็น PPTX พร้อมเปิดใช้งานส่วนขยายรูปแบบ ZIP64:
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setZip64Mode(Zip64Mode.Always);
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("OutputZip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
presentation.dispose();
}
NOTE
เมื่อคุณบันทึกด้วย Zip64Mode.Never จะเกิด PptxException หากงานนำเสนอไม่สามารถบันทึกในรูปแบบ ZIP32บันทึกงานนำเสนอโดยไม่รีเฟรชภาพตัวอย่าง
เมธอด PptxOptions.setRefreshThumbnail ควบคุมการสร้างภาพตัวอย่างเมื่อบันทึกงานนำเสนอเป็น PPTX:
- หากตั้งค่าเป็น
trueภาพตัวอย่างจะถูกรีเฟรชระหว่างการบันทึก นี่คือค่าเริ่มต้น - หากตั้งค่าเป็น
falseภาพตัวอย่างปัจจุบันจะถูกเก็บไว้ หากงานนำเสนอไม่มีภาพตัวอย่าง จะไม่สร้างภาพใหม่
ในโค้ดด้านล่าง งานนำเสนอจะถูบันทึกเป็น PPTX โดยไม่รีเฟรชภาพตัวอย่างของมัน
PptxOptions pptxOptions = new PptxOptions();
pptxOptions.setRefreshThumbnail(false);
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("Output.pptx", SaveFormat.Pptx, pptxOptions);
}
finally {
presentation.dispose();
}
Info
ตัวเลือกนี้ช่วยลดเวลาที่ใช้ในการบันทึกงานนำเสนอเป็นรูปแบบ PPTXบันทึกการอัปเดตความคืบหน้าเป็นเปอร์เซ็นต์
อินเทอร์เฟซ IProgressCallback ถูกใช้ผ่านเมธอด setProgressCallback ของอินเทอร์เฟซ ISaveOptions และคลาสแบบ abstract SaveOptions. กำหนดการทำงานของ IProgressCallback ด้วย setProgressCallback เพื่อรับการอัปเดตความคืบหน้าในการบันทึกเป็นเปอร์เซ็นต์
โค้ดตัวอย่างต่อไปนี้แสดงวิธีใช้ IProgressCallback
ISaveOptions saveOptions = new PdfOptions();
saveOptions.setProgressCallback(new ExportProgressHandler());
Presentation presentation = new Presentation("Sample.pptx");
try {
presentation.save("Output.pdf", SaveFormat.Pdf, saveOptions);
} finally {
presentation.dispose();
}
class ExportProgressHandler implements IProgressCallback {
public void reporting(double progressValue) {
// ใช้ค่าร้อยละของความคืบหน้าที่นี่.
int progress = (int) progressValue;
System.out.println(progress + "% of the file has been converted.");
}
}
Info
Aspose ได้พัฒนาแอป free PowerPoint Splitter app ด้วย API ของตัวเอง แอปนี้ช่วยให้คุณแยกงานนำเสนอเป็นหลายไฟล์โดยบันทึกสไลด์ที่เลือกเป็นไฟล์ PPTX หรือ PPT ใหม่คำถามที่พบบ่อย
รองรับ “fast save” (การบันทึกแบบเพิ่มส่วน) เพื่อบันทึกเฉพาะการเปลี่ยนแปลงหรือไม่?
ไม่. การบันทึกจะสร้างไฟล์เป้าหมายเต็มทุกครั้ง; การบันทึกแบบ “fast save” แบบเพิ่มส่วนไม่รองรับ
การบันทึกอินสแตนซ์ Presentation เดียวจากหลายเธรดปลอดภัยหรือไม่?
ไม่. อินสแตนซ์ Presentation ไม่ได้รองรับการทำงานหลายเธรด; ควรบันทึกจากเธรดเดียว
อะไรจะเกิดขึ้นกับไฮเปอร์ลิงก์และไฟล์ที่เชื่อมโยงจากภายนอกเมื่อบันทึก?
Hyperlinks จะถูกเก็บไว้ ส่วนไฟล์ที่เชื่อมโยงภายนอก (เช่นวิดีโอโดยใช้เส้นทางสัมพันธ์) จะไม่ถูกคัดลอกโดยอัตโนมัติ—ตรวจสอบให้แน่ใจว่าเส้นทางที่อ้างอิงยังคงสามารถเข้าถึงได้
ฉันสามารถตั้งค่า/บันทึกข้อมูลเมตาดาต้าเอกสาร (ผู้เขียน, ชื่อเรื่อง, บริษัท, วันที่) ได้หรือไม่?
ได้. คุณสมบัติเอกสารมาตรฐาน document properties ได้รับการสนับสนุนและจะถูกเขียนลงในไฟล์เมื่อบันทึก