ผสานการนำเสนออย่างมีประสิทธิภาพบน Android
ภาพรวม
Aspose.Slides for Android via Java ผสานการนำเสนอโดยการโคลนสไลด์จากหนึ่ง Presentation ไปยังอีกอัน หน่วยงานหลักคือ ISlideCollection.addClone ซึ่งสามารถรักษาการจัดรูปแบบของสไลด์ต้นฉบับหรือแนบสไลด์ที่โคลนไปยังมาสเตอร์หรือเลเอาต์ในการนำเสนอปลายทางได้
บทความนี้ครอบคลุมขั้นตอนการผสานที่ใช้บ่อยที่สุด:
- ผสานสไลด์ทั้งหมดพร้อมคงการจัดรูปแบบของต้นฉบับ;
- ผสานสไลด์ที่เลือก;
- ใช้มาสเตอร์จากการนำเสนอปลายทาง;
- ใช้เลเอาต์เฉพาะจากการนำเสนอปลายทาง;
- ปรับขนาดสไลด์ที่แตกต่างกันก่อนการผสาน;
- เพิ่มสไลด์ที่โคลนไปยังส่วน;
- ผสานหลายการนำเสนอในกระบวนการต้นสุดถึงปลายสุดหนึ่งเดียว;
- จัดการมาสเตอร์, แหล่งข้อมูล, โน้ต, ความคิดเห็น, สื่อ, ฟอนต์, รหัสผ่าน, ไฟล์ขนาดใหญ่, และข้อกังวลเกี่ยวกับการทำงานหลายเธรด
การโคลนสไลด์มีผลต่อมาสเตอร์และเลเอาต์อย่างไร
สไลด์สืบทอดลักษณะที่ปรากฏส่วนใหญ่จากเลเอาต์และมาสเตอร์ ด้วยเหตุนี้ การเลือก overload ของการโคลนที่คุณใช้จะกำหนดว่าการผสานสไลด์จะถูกผสานเข้ากับการนำเสนอปลายทางอย่างไร
ใช้ ISlideCollection.addClone ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
addClone(sourceSlide)— คงเลเอาต์และการจัดรูปแบบของสไลด์ต้นฉบับ เมื่อจำเป็น มาสเตอร์ต้นฉบับจะถูกโคลนเข้าไปในการนำเสนอปลายทางโดยอัตโนมัติ Aspose.Slides จะติดตามมาสเตอร์ที่โคลนอัตโนมัติ เพื่อไม่ให้สไลด์ที่ใช้มาสเตอร์เดียวกันถูกโคลนซ้ำหลายครั้งaddClone(sourceSlide, destinationMaster, allowCloneMissingLayout)— แนบสไลด์ที่โคลนไปยัง IMasterSlide เฉพาะของปลายทาง Aspose.Slides จะค้นหาเลเอาต์ที่ตรงกับประเภทหรือชื่อภายใต้มาสเตอร์นั้นaddClone(sourceSlide, destinationLayout)— แนบสไลด์ที่โคลนตรงไปยัง ILayoutSlide เฉพาะของปลายทาง
มาสเตอร์หรือเลเอาต์ที่ส่งให้ overload addClone ต้องเป็นของ การนำเสนอปลายทาง ไม่ใช่ของการนำเสนอแหล่ง
ผสานการนำเสนอทั้งหมดและคงการจัดรูปแบบของต้นฉบับ
การผสานที่ง่ายที่สุดคือคัดลอกสไลด์ทุกสไลด์จากการนำเสนอแหล่งไปยังการนำเสนอปลายทาง นี่เป็นตัวเลือกที่เหมาะสมเมื่อสไลด์ที่นำเข้าควรคงธีม, มาสเตอร์, และความสัมพันธ์ของเลเอาต์เดิม
import com.aspose.slides.*;
Presentation destination = new Presentation("destination.pptx");
Presentation source = new Presentation("source.pptx");
try {
for (ISlide slide : source.getSlides()) {
destination.getSlides().addClone(slide);
}
destination.save("merged.pptx", SaveFormat.Pptx);
} finally {
source.dispose();
destination.dispose();
}
การนำเสนอที่ได้อาจมีมาสเตอร์หลายตัวเมื่อแหล่งและปลายทางใช้ดีไซน์ที่แตกต่างกัน ซึ่งเป็นพฤติกรรมที่คาดหวังเมื่อต้องการคงการจัดรูปแบบของต้นฉบับ
ผสานสไลด์ที่เลือก
คุณไม่จำเป็นต้องโคลนสไลด์ทุกสไลด์ ตัวอย่างต่อไปนี้จะนำเข้าเฉพาะดัชนีสไลด์ที่เลือกจากการนำเสนอแหล่ง
import com.aspose.slides.*;
Presentation destination = new Presentation("destination.pptx");
Presentation source = new Presentation("source.pptx");
try {
int[] slideIndexes = { 0, 2, 4 };
for (int index : slideIndexes) {
destination.getSlides().addClone(source.getSlides().get_Item(index));
}
destination.save("merged-selected-slides.pptx", SaveFormat.Pptx);
} finally {
source.dispose();
destination.dispose();
}
ตรวจสอบดัชนีสไลด์ก่อนโคลนเมื่อมาจากการป้อนข้อมูลของผู้ใช้หรือการตั้งค่าภายนอก
ผสานสไลด์โดยใช้มาสเตอร์ปลายทาง
ใช้ overload addClone(ISlide, IMasterSlide, boolean) เมื่อสไลด์ที่นำเข้าควรปฏิบัติตามมาสเตอร์ที่มีอยู่แล้วในการนำเสนอปลายทาง
import com.aspose.slides.*;
Presentation destination = new Presentation("destination.pptx");
Presentation source = new Presentation("source.pptx");
try {
IMasterSlide destinationMaster = destination.getMasters().get_Item(0);
for (ISlide slide : source.getSlides()) {
destination.getSlides().addClone(slide, destinationMaster, true);
}
destination.save("merged-with-destination-master.pptx", SaveFormat.Pptx);
} finally {
source.dispose();
destination.dispose();
}
Aspose.Slides จะเลือกเลเอาต์ที่เหมาะสมภายใต้มาสเตอร์ที่ระบุโดยการจับคู่ประเภทหรือชื่อของเลเอาต์ต้นฉบับ หากไม่มีเลเอาต์ที่เหมาะสมและ allowCloneMissingLayout เป็น true เลเอาต์ต้นฉบับจะถูกโคลนเพื่อให้สไลด์สามารถเพิ่มได้ หากเป็น false จะเกิด PptxEditException ขึ้น
ใช้ค่า false เมื่อคุณต้องการให้การผสานล้มเหลวแทนที่จะเพิ่มเลเอาต์ใหม่ในมาสเตอร์ปลายทาง
ผสานสไลด์โดยใช้เลเอาต์ปลายทางเฉพาะ
ใช้ overload addClone(ISlide, ILayoutSlide) เมื่อคุณทราบเลเอาต์ปลายทางที่สไลด์นำเข้าควรใช้อย่างชัดเจน
import com.aspose.slides.*;
Presentation destination = new Presentation("destination.pptx");
Presentation source = new Presentation("source.pptx");
try {
ILayoutSlide destinationLayout = destination.getLayoutSlides().get_Item(0);
for (ISlide slide : source.getSlides()) {
destination.getSlides().addClone(slide, destinationLayout);
}
destination.save("merged-with-destination-layout.pptx", SaveFormat.Pptx);
} finally {
source.dispose();
destination.dispose();
}
การใช้เลเอาต์ปลายทางจะเปลี่ยนความสัมพันธ์เลเอาต์ที่สืบทอด แต่ไม่ได้ออกแบบเนื้อหาของสไลด์ต้นฉบับใหม่ หากเลเอาต์ของแหล่งและปลายทางมีโครงสร้าง placeholder ที่แตกต่างกัน ให้ตรวจสอบผลลัพธ์เพื่อยืนยันว่าการจัดรูปแบบและพฤติกรรม placeholder ที่สืบทอดนั้นเหมาะสม
ผสานการนำเสนอที่มีขนาดสไลด์ต่างกัน
การนำเสนอที่มีขนาดสไลด์ต่างกันสามารถผสานได้ แต่การโคลนสไลด์ไปยังการนำเสนอที่มีขนาดสไลด์อื่น ๆ จะไม่ออกแบบเนื้อหาใหม่โดยอัตโนมัติสำหรับพื้นที่ผืนผ้าใบใหม่ รูปร่างอาจปรากฏถูกย้าย, ยืดหรือหายไปนอกพื้นที่ที่มองเห็นได้
แนวทางที่เป็นประโยชน์คือปรับขนาดการนำเสนอแหล่งก่อนโคลน วิธีการ SlideSize.setSize สามารถขยายเนื้อหาเดิมพร้อมกับเปลี่ยนขนาดสไลด์ได้ SlideSizeScaleType.EnsureFit จะสเกลเนื้อหาให้พอดีกับขนาดที่ร้องขอ
import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;
Presentation destination = new Presentation("destination.pptx");
Presentation source = new Presentation("source.pptx");
try {
SizeF sourceSize = source.getSlideSize().getSize();
SizeF destinationSize = destination.getSlideSize().getSize();
if (sourceSize.getWidth() != destinationSize.getWidth() ||
sourceSize.getHeight() != destinationSize.getHeight()) {
source.getSlideSize().setSize(
destinationSize.getWidth(),
destinationSize.getHeight(),
SlideSizeScaleType.EnsureFit);
}
for (ISlide slide : source.getSlides()) {
destination.getSlides().addClone(slide);
}
destination.save("merged-same-slide-size.pptx", SaveFormat.Pptx);
} finally {
source.dispose();
destination.dispose();
}
การปรับขนาดจะเปลี่ยนวัตถุการนำเสนอแหล่งในหน่วยความจำ หากคุณต้องการให้การนำเสนอแหล่งต้นฉบับคงอยู่สำหรับการดำเนินการอื่น ๆ ให้เปิดอินสแตนซ์แยกสำหรับการผสาน
ผสานสไลด์เข้าส่วนของการนำเสนอ
ลูปโคลนสไลด์พื้นฐานจะไม่สร้างลำดับชั้นส่วนของการนำเสนอแหล่ง หากส่วนสำคัญในผลลัพธ์ ให้สร้างหรือเลือกส่วนในการนำเสนอปลายทางและโคลนสไลด์เข้าไปโดยใช้ addClone(ISlide, ISection)
import com.aspose.slides.*;
Presentation destination = new Presentation("destination.pptx");
Presentation source = new Presentation("source.pptx");
try {
ISection importedSection = destination.getSections().appendEmptySection("Imported slides");
for (ISlide slide : source.getSlides()) {
destination.getSlides().addClone(slide, importedSection);
}
destination.save("merged-with-section.pptx", SaveFormat.Pptx);
} finally {
source.dispose();
destination.dispose();
}
สไลด์ที่โคลนจะถูกเพิ่มต่อท้ายส่วนปลายทางที่ระบุ เพื่อคงหลายส่วนแหล่ง ให้วนลูป Presentation.getSections ดึงสไลด์ของแต่ละส่วนแหล่งด้วย ISection.getSlidesListOfSection สร้างส่วนในปลายทางใหม่ แล้วโคลนสไลด์ที่ได้เข้าไปยังส่วนที่สอดคล้องกัน ดูตัวอย่างการจัดการส่วนสไลด์เต็มรูปแบบที่ Manage Slide Sections ซึ่งรวมถึงส่วนที่ว่างเปล่าและการเปลี่ยนแปลงโครงสร้าง
ผสานหลายการนำเสนออย่างปลอดภัย
ตัวอย่าง end-to-end ด้านล่างใช้การนำเสนอแรกเป็นปลายทาง ปรับขนาดสไลด์ของแต่ละแหล่งเพิ่มเติม เปิดแต่ละแหล่งเฉพาะในช่วงที่กำลังคัดลอก และบันทึกไฟล์สุดท้ายเพียงครั้งเดียว
import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;
String[] inputFiles = { "part1.pptx", "part2.pptx", "part3.pptx" };
Presentation merged = new Presentation(inputFiles[0]);
try {
SizeF mergedSize = merged.getSlideSize().getSize();
for (int fileIndex = 1; fileIndex < inputFiles.length; fileIndex++) {
Presentation source = new Presentation(inputFiles[fileIndex]);
try {
SizeF sourceSize = source.getSlideSize().getSize();
if (sourceSize.getWidth() != mergedSize.getWidth() ||
sourceSize.getHeight() != mergedSize.getHeight()) {
source.getSlideSize().setSize(
mergedSize.getWidth(),
mergedSize.getHeight(),
SlideSizeScaleType.EnsureFit);
}
for (ISlide slide : source.getSlides()) {
merged.getSlides().addClone(slide);
}
} finally {
source.dispose();
}
}
merged.save("merged.pptx", SaveFormat.Pptx);
} finally {
merged.dispose();
}
นี่เป็นฐานที่เป็นประโยชน์สำหรับการคงการจัดรูปแบบของสไลด์ที่นำเข้า หากผลลัพธ์ของคุณต้องใช้ธีมเดียวของปลายทาง ให้แทนที่การเรียก addClone(slide) อย่างง่ายด้วย overload มาสเตอร์หรือเลเอาต์ปลายทางที่แสดงไว้ก่อนหน้านี้
ข้อพิจารณาเชิงปฏิบัติ
มาสเตอร์, เลเอาต์, และความแม่นยำของการจัดรูปแบบ
การโคลนสไลด์เริ่มต้นสามารถนำมาสเตอร์ที่จำเป็นจากแหล่งเข้าสู่การนำเสนอปลายทางโดยอัตโนมัติ Aspose.Slides จะเก็บ registry ภายในสำหรับมาสเตอร์ที่โคลนอัตโนมัติเพื่อหลีกเลี่ยงการโคลนมาสเตอร์เดียวกันซ้ำหลายครั้ง มาสเตอร์ที่โคลนด้วยมือจะไม่ได้รับการติดตามโดย registry นั้น ดังนั้นหลีกเลี่ยงการโคลนมาสเตอร์ล่วงหน้า เว้นแต่คุณต้องการควบคุมโครงสร้างมาสเตอร์อย่างชัดเจน
อย่าสมมติว่ามาสเตอร์หรือเลเอาต์สองตัวที่มีชื่อเดียวกันจะมีลักษณะเหมือนกัน หากเทมเพลตองค์กรต้องควบคุมรูปลักษณ์สุดท้าย ให้เลือกมาสเตอร์หรือเลเอาต์ปลายทางอย่างชัดเจนและตรวจสอบผลลัพธ์หลังการผสาน
โน้ตและความคิดเห็น
โน้ตของผู้พูดและความคิดเห็นของสไลด์เชื่อมโยงกับเนื้อหาสไลด์และจะถูกคัดลอกเมื่อสไลด์ถูกโคลน Aspose.Slides ยังมี API เฉพาะสำหรับ presentation notes และ presentation comments
หากการจัดรูปแบบของหน้าโน้ตสำคัญ ให้ตรวจสอบการนำเสนอที่ผสานแล้ว เนื่องจากโน้ตมาสเตอร์เป็นออบเจ็กต์ระดับการนำเสนอและอาจแตกต่างกันระหว่างไฟล์แหล่ง สำหรับกระบวนการตรวจสอบ ให้ตรวจสอบผู้เขียนความคิดเห็นและชุดความคิดเห็นแบบเธรดหลังจากรวมไฟล์จากผู้เขียนหรือเทมเพลตที่ต่างกัน
รูปภาพ, เสียง, วีดีโอ, วัตถุ OLE, และลิงก์ภายนอก
สไลด์อาจอ้างอิงทรัพยากรระดับการนำเสนอ เช่น รูปภาพ, เสียงฝัง, วีดีโอฝัง, และข้อมูล OLE ให้โคลนสไลด์ทั้งหมดแทนที่จะคัดลอกแค่รูปร่างที่มองเห็น เพื่อให้ Aspose.Slides รักษาความสัมพันธ์ของสไลด์กับทรัพยากรเหล่านั้น
ทรัพยากรที่ฝังและที่ลิงก์ควรจัดการแยกกัน ลิงก์เสียง, วีดีโอ, วัตถุ OLE หรือไฮเปอร์ลิงก์ที่ลิงก์จะยังคงพึ่งพาเป้าหมายภายนอก; การโคลนสไลด์จะไม่เปลี่ยนลิงก์ภายนอกเป็นเนื้อหาที่ฝัง ทดสอบเส้นทางและ URL ของทรัพยากรลิงก์ในสภาพแวดล้อมที่การนำเสนอที่ผสานจะถูกเปิด
แม้ Aspose.Slides จะติดตามมาสเตอร์ที่โคลนอัตโนมัติ แต่ไม่ควรถือว่าเป็นการรับประกันทั่วไปว่าทรัพยากรไบนารีที่เหมือนกันจากแหล่งที่ไม่เกี่ยวข้องจะถูกดึงซ้ำโดยอัตโนมัติ หากขนาดไฟล์ผลลัพธ์สำคัญ ให้ตรวจสอบแพ็กเกจที่ผสานและวัดผลลัพธ์แทนการพึ่งพาการดึงซ้ำโดยนัย
ฟอนต์ที่ฝังและความพร้อมใช้งานของฟอนต์
ฟอนต์ถูกจัดการระดับการนำเสนอ หากต้องการให้การพิมพ์คงที่บนเครื่องต่าง ๆ อย่าสมมติว่าการโคลนสไลด์อย่างเดียวจะทำให้ฟอนต์ที่ต้องการทั้งหมดพร้อมใช้งานในสภาพแวดล้อมปลายทาง คุณสามารถตรวจสอบฟอนต์ที่ฝังด้วย FontsManager.getEmbeddedFonts และจัดการการฝังอย่างชัดเจนตามที่อธิบายใน Embed Fonts in Presentations
นอกจากนี้ ให้ตรวจสอบว่าคุณมีสิทธิ์ฝังฟอนต์ที่ใช้ในไฟล์แหล่งหรือไม่ เนื่องจากสัญญาอนุญาตฟอนต์อาจจำกัดการฝัง
การนำเสนอที่มีรหัสผ่าน
แหล่งที่มีรหัสผ่านต้องเปิดสำเร็จก่อนที่สไลด์จะถูกโคลน ให้ส่งรหัสผ่านผ่าน LoadOptions.setPassword
import com.aspose.slides.*;
LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("YOUR_PASSWORD");
Presentation source = new Presentation("protected.pptx", loadOptions);
try {
// ทำงานกับการนำเสนอที่ถอดรหัสแล้ว.
} finally {
source.dispose();
}
การเปิดแหล่งที่เข้ารหัสจะไม่ได้ทำให้การนำเสนอปลายทางได้รับการป้องกันเดียวกัน ให้กำหนดการป้องกันผลลัพธ์แยกต่างหากเมื่อจำเป็น
การนำเสนอขนาดใหญ่และการใช้หน่วยความจำ
การนำเสนอขนาดใหญ่ที่มีรูปภาพความละเอียดสูง, เสียง, วีดีโอ, หรือวัตถุไบนารีขนาดใหญ่สามารถใช้หน่วยความจำอย่างมากได้ LoadOptions.getBlobManagementOptions ให้การควบคุมการจัดการ BLOB และการใช้ไฟล์ชั่วคราว ดู Manage Presentation BLOBs สำหรับกลยุทธ์ไฟล์ขนาดใหญ่
สำหรับไฟล์ขนาดใหญ่ ควรโหลดจากเส้นทางไฟล์เมื่อทำได้, ปล่อยการนำเสนอแหล่งแต่ละอันทันทีที่ผสานเสร็จ, และหลีกเลี่ยงการบันทึกผลลัพธ์กลางบ่อยเกินไปหากเวิร์กโฟลว์ไม่ต้องการจุดตรวจ
ความปลอดภัยของเธรด
ห้ามโหลด, แก้ไข, บันทึก, หรือโคลนอินสแตนซ์ Presentation เดียวกันพร้อมกันจากหลายเธรด ให้แต่ละอินสแตนซ์การนำเสนออยู่ในกระบวนการผสานเดียว หากคุณทำงานแบบขนานกับงานที่อิสระ ให้ใช้อินสแตนซ์การนำเสนอแยกกันและปฏิบัติตามคำแนะนำการทำงานหลายเธรดของ Aspose.Slides [/slides/th/androidjava/multithreading/]
FAQ
ฉันจะรักษาการออกแบบดั้งเดิมของแต่ละการนำเสนอแหล่งได้อย่างไร?
ใช้ addClone โดยไม่ระบุมาสเตอร์หรือเลเอาต์ปลายทาง Aspose.Slides สามารถโคลนมาสเตอร์ต้นฉบับโดยอัตโนมัติเมื่อสไลด์ที่นำเข้าต้องการ
ฉันจะทำให้สไลด์ที่นำเข้าใช้ธีมของปลายทางได้อย่างไร?
ใช้ overload ที่รับมาสเตอร์ปลายทาง ส่งมาสเตอร์จากการนำเสนอปลายทาง ไม่ใช่จากแหล่ง Aspose.Slides จะพยายามแมปสไลด์ต้นฉบับแต่ละสไลด์ไปยังเลเอตต์ที่เหมาะสมภายใต้มาสเตอร์นั้น
ควรใช้เลเอาต์ปลายทางเฉพาะเมื่อใดแทนมาสเตอร์ปลายทาง?
ใช้เลเอาต์เฉพาะเมื่อสไลด์ที่นำเข้าทุกสไลด์ต้องใช้เลเอาต์ที่รู้จักอย่างชัดเจน ใช้มาสเตอร์เมื่อคุณต้องการให้ Aspose.Slides เลือกจากเลเอตต์ของมาสเตอร์นั้นตามประเภทหรือชื่อของเลเอตต์ต้นฉบับ
สามารถผสานการนำเสนอที่มีขนาดสไลด์ต่างกันได้หรือไม่?
ทำได้ แต่เนื้อหาสไลด์จะไม่ถูกออกแบบใหม่โดยอัตโนมัติสำหรับมิติปลายทาง ปรับขนาดการนำเสนอแหล่งก่อนเมื่อคุณต้องการตำแหน่งที่คาดการณ์ได้ เช่น ด้วย SlideSize.setSize และ SlideSizeScaleType.EnsureFit
ฉันสามารถผสานไฟล์ PPT, PPTX, และ ODP เข้าเป็นไฟล์เดียวได้หรือไม่?
ทำได้ โหลดแต่ละการนำเสนอแหล่ง โคลนสไลด์ที่ต้องการเข้าสู่ปลายทางหนึ่ง และบันทึกปลายทางในรูปแบบที่รองรับ เนื่องจากฟอร์แมตการนำเสนออาจไม่สนับสนุนคุณลักษณะเดียวกันทั้งหมด โปรดตรวจสอบเนื้อหาซับซ้อนหลังการผสานข้ามฟอร์แมต ดูที่ Supported File Formats
ส่วนของแหล่งถูกเก็บรักษาโดยอัตโนมัติหรือไม่?
ไม่ใช่ด้วยลูปพื้นฐานที่โคลนสไลด์เท่านั้น ต้องสร้างส่วนที่ต้องการในปลายทางและใช้ overload ส่วนของ addClone เมื่อจำเป็นต้องคงโครงสร้างส่วน
โน้ตและความคิดเห็นถูกเก็บรักษาหรือไม่?
ถูกคัดลอกพร้อมกับสไลด์ที่โคลน สำหรับเวิร์กโฟลว์ที่ขึ้นกับการจัดรูปแบบของโน้ตมาสเตอร์, ผู้เขียนความคิดเห็น, หรือข้อมูลรีวิวแบบเธรด โปรดตรวจสอบผลลัพธ์การผสาน เพราะสถานการณ์เหล่านั้นเกี่ยวข้องกับโครงสร้างระดับการนำเสนอเช่นเดียวกับเนื้อหาระดับสไลด์
เสียง, วีดีโอ, วัตถุ OLE, และไฮเปอร์ลิงก์จะเกิดอะไรขึ้น?
เนื้อหาที่ฝังจะถูกพกพาเป็นส่วนหนึ่งของความสัมพันธ์ทรัพยากรของสไลด์ที่โคลน ลิงก์ภายนอกจะคงเป็นลิงก์ภายนอก ดังนั้นไฟล์หรือ URL เป้าหมายต้องยังคงพร้อมใช้งานหลังการผสาน
ฟอนต์ที่ฝังจากทุกแหล่งรับประกันว่าจะพร้อมใช้งานในการนำเสนอที่ผสานหรือไม่?
อย่าอ้างอิงการโคลนสไลด์อย่างเดียวสำหรับการจัดหาฟอนต์ ตรวจสอบฟอนต์ที่ฝังในปลายทางและจัดการการฝังฟอนต์หรือความพร้อมใช้งานฟอนต์ภายนอกอย่างชัดเจนเมื่อการพิมพ์เป็นสิ่งสำคัญ
ฉันจะผสานไฟล์ที่มีรหัสผ่านได้อย่างไร?
เปิดด้วย LoadOptions.setPassword ที่ถูกต้องแล้วโคลนสไลด์ตามปกติ การปกป้องผลลัพธ์ต้องกำหนดแยกต่างหาก
ควรจัดการการนำเสนอขนาดใหญ่อย่างไร?
ใช้การจัดการ BLOB เมื่อวัตถุไบนารีใหญ่เป็นส่วนใหญ่ของหน่วยความจำ เลือกโหลดจากเส้นทางไฟล์สำหรับไฟล์ขนาดใหญ่ ปล่อยการนำเสนอแหล่งโดยเร็วหลังการผสาน และบันทึกผลลัพธ์สุดท้ายเฉพาะเมื่อจำเป็น
ฉันสามารถผสานสไลด์จากหลายเธรดได้หรือไม่?
ห้ามใช้อินสแตนซ์ Presentation เดียวกันพร้อมกันจากหลายเธรด ให้แต่ละกระบวนการผสานแยกออกเป็นอินสแตนซ์การนำเสนอของตนเอง