รวมพรีเซนเทชันอย่างมีประสิทธิภาพใน JavaScript

ภาพรวม

Aspose.Slides ช่วยให้คุณรวมพรีเซนเทชันโดยทำการคัดลอกสไลด์จากพรีเซนเทชันหนึ่งไปยังอีกพรีเซนเทชันหนึ่ง บทความนี้อธิบายวิธีการรวมพรีเซนเทชันทั้งหมดหรือสไลด์ที่เลือกใช้ พรีเซนเทชันมาสเตอร์หรือเค้าโครงเฉพาะในระหว่างการรวม การจัดการพรีเซนเทชันที่มีขนาดสไลด์แตกต่างกัน และการเพิ่มสไลด์ที่รวมแล้วเข้าไปในส่วนของพรีเซนเทชัน นอกจากนี้ยังครอบคลุมโน้ตสำคัญที่เกี่ยวข้องกับเนื้อหาที่รวมไว้รวมถึงโน้ตผู้พูด ความคิดเห็น ไฟล์ต้นฉบับที่ป้องกันด้วยรหัสผ่าน และการใช้เธรด

การรวมพรีเซนเทชัน

เมื่อคุณรวมพรีเซนเทชันหนึ่งไปยังอีกพรีเซนเทชันหนึ่ง คุณกำลังผสานสไลด์ของพวกมันเข้าด้วยกันในพรีเซนเทชันเดียวเพื่อให้ได้ไฟล์เดียว

สิ่งที่สามารถรวมได้

  • พรีเซนเทชันทั้งหมด ทั้งหมดของสไลด์จากพรีเซนเทชันจะอยู่ในพรีเซนเทชันเดียว
  • สไลด์เฉพาะ สไลด์ที่เลือกจะอยู่ในพรีเซนเทชันเดียว
  • พรีเซนเทชันในรูปแบบเดียวกัน (PPT ไปยัง PPT, PPTX ไปยัง PPTX ฯลฯ) หรือในรูปแบบต่างกัน (PPT ไปยัง PPTX, PPTX ไปยัง ODP ฯลฯ) ไปยังกันและกัน

ตัวเลือกการรวม

คุณสามารถกำหนดตัวเลือกที่บ่งบอกว่า

  • สไลด์แต่ละสไลด์ในพรีเซนเทชันผลลัพธ์จะรักษาสไตล์ที่เป็นเอกลักษณ์
  • หรือสไตล์เฉพาะจะใช้กับสไลด์ทั้งหมดในพรีเซนเทชันผลลัพธ์

เพื่อรวมพรีเซนเทชัน Aspose.Slides มีเมธอด addClone (จากคลาส SlideCollection) มีการนำไปใช้หลายรูปแบบที่กำหนดพารามิเตอร์ของกระบวนการรวมพรีเซนเทชัน ทุกอ็อบเจ็กต์ Presentation จะมีคอลเลกชัน Slides ดังนั้นคุณจึงสามารถเรียกเมธอด addClone จากพรีเซนเทชันที่ต้องการรวมสไลด์เข้าไป

เมธอด addClone จะคืนค่าอ็อบเจ็กต์ Slide ซึ่งเป็นสำเนาของสไลด์ต้นฉบับ สไลด์ในพรีเซนเทชันผลลัพธ์จึงเป็นสำเนาของสไลด์จากแหล่งต้นทาง ดังนั้นคุณจึงสามารถเปลี่ยนแปลงสไลด์ที่ได้ (เช่น ใช้สไตล์หรือออพชันการจัดรูปแบบหรือเค้าโครง) ได้โดยไม่กระทบต่อพรีเซนเทชันต้นฉบับ

รวมพรีเซนเทชัน

Aspose.Slides มีเมธอด AddClone(ISlide) ที่ให้คุณผสานสไลด์ในขณะที่สไลด์ยังคงเค้าโครงและสไตล์เดิม (พารามิเตอร์เริ่มต้น)

โค้ด JavaScript นี้แสดงวิธีการรวมพรีเซนเทชัน:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

รวมพรีเซนเทชันด้วย Slide Master

Aspose.Slides มีเมธอด AddClone(ISlide, IMasterSlide, boolean) ที่ให้คุณผสานสไลด์พร้อมกับการใช้เทมเพลต Slide Master ของพรีเซนเทชัน ดังนั้นหากต้องการคุณสามารถเปลี่ยนสไตล์ของสไลด์ในพรีเซนเทชันผลลัพธ์ได้

โค้ด JavaScript นี้แสดงการดำเนินการที่อธิบายไว้:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true);
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

หากต้องการให้สไลด์ในพรีเซนเทชันผลลัพธ์มีเค้าโครงสไลด์ที่แตกต่าง ให้ใช้เมธอด addClone(ISlide, ILayoutSlide) แทนเมื่อต้องการรวม

รวมสไลด์เฉพาะจากพรีเซนเทชัน

การรวมสไลด์เฉพาะจากหลายพรีเซนเทชันเป็นประโยชน์สำหรับการสร้างชุดสไลด์แบบกำหนดเอง Aspose.Slides for Node.js via Java อนุญาตให้คุณเลือกและนำเข้าเฉพาะสไลด์ที่ต้องการ API จะรักษาการจัดรูปแบบ เค้าโครง และการออกแบบของสไลด์ต้นฉบับไว้

โค้ด JavaScript ด้านล่างสร้างพรีเซนเทชันใหม่ เพิ่มสไลด์ชื่อเรื่องจากสองพรีเซนเทชันอื่น และบันทึกผลลัพธ์เป็นไฟล์:

function getTitleSlide(presentation) {
  for (let i = 0; i < presentation.getSlides().size(); i++) {
    let slide = presentation.getSlides().get_Item(i);
    if (slide.getLayoutSlide().getLayoutType() == aspose.slides.SlideLayoutType.Title) {
      return slide;
    }
  }
  return null;
}
let presentation = new aspose.slides.Presentation();
let presentation1 = new aspose.slides.Presentation("presentation1.pptx");
let presentation2 = new aspose.slides.Presentation("presentation2.pptx");
try {
    presentation.getSlides().removeAt(0);
    
    let slide1 = getTitleSlide(presentation1);

    if (slide1 != null)
        presentation.getSlides().addClone(slide1);

    let slide2 = getTitleSlide(presentation2);

    if (slide2 != null)
        presentation.getSlides().addClone(slide2);

    presentation.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation2.dispose();
    presentation1.dispose();
    presentation.dispose();
}

รวมพรีเซนเทชันด้วย Slide Layout

โค้ด JavaScript นี้แสดงวิธีการผสานสไลด์จากพรีเซนเทชันพร้อมกับการใช้เค้าโครงสไลด์ที่คุณต้องการเพื่อให้ได้พรีเซนเทชันผลลัพธ์เดียว:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

รวมพรีเซนเทชันที่มีขนาดสไลด์ต่างกัน

เพื่อรวมพรีเซนเทชัน 2 ฉบับที่มีขนาดสไลด์ต่างกัน คุณต้องปรับขนาดหนึ่งในพรีเซนเทชันให้ตรงกับอีกฉบับหนึ่ง

ตัวอย่างโค้ดต่อไปนี้แสดงการดำเนินการดังกล่าว:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        pres2.getSlideSize().setSize(pres1.getSlideSize().getSize().getWidth(), pres1.getSlideSize().getSize().getHeight(), aspose.slides.SlideSizeScaleType.EnsureFit);
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

รวมสไลด์ไปยังส่วนของพรีเซนเทชัน

โค้ด JavaScript นี้แสดงวิธีการรวมสไลด์เฉพาะเข้าสู่ส่วนในพรีเซนเทชัน:

let pres1 = new aspose.slides.Presentation("pres1.pptx");
try {
    let pres2 = new aspose.slides.Presentation("pres2.pptx");
    try {
        for (let i = 0; i < pres2.getSlides().size(); i++) {
            let slide = pres2.getSlides().get_Item(i);
            pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0));
        }
    } finally {
        if (pres2 != null) {
            pres2.dispose();
        }
    }
    pres1.save("combined.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres1 != null) {
        pres1.dispose();
    }
}

สไลด์จะถูกเพิ่มที่ส่วนท้ายของเซ็กชันนั้น

FAQ

โน้ตผู้พูดจะถูกเก็บรักษาไว้ระหว่างการรวมหรือไม่?

ใช่ เมื่อนำสไลด์มาโคล Clone, Aspose.Slides จะคัดลอกองค์ประกอบสไลด์ทั้งหมดรวมถึงโน้ต การจัดรูปแบบ และแอนิเมชัน

ความคิดเห็นและผู้เขียนของความคิดเห็นจะถูกย้ายไปด้วยหรือไม่?

ความคิดเห็นซึ่งเป็นส่วนหนึ่งของเนื้อหาสไลด์จะถูกคัดลอกพร้อมสไลด์ ป้ายผู้เขียนความคิดเห็นจะถูกเก็บเป็นอ็อบเจ็กต์คอมเมนต์ในพรีเซนเทชันผลลัพธ์

หากพรีเซนเทชันต้นทางมีการป้องกันด้วยรหัสผ่านจะทำอย่างไร?

ต้อง เปิดด้วยรหัสผ่าน ผ่าน LoadOptions.setPassword หลังจากโหลดแล้วสไลด์เหล่านั้นสามารถโคล Clone ไปยังไฟล์ปลายทางที่ไม่มีการป้องกัน (หรือไฟล์ที่ป้องกันด้วยรหัสผ่านได้เช่นกัน)

การดำเนินการรวมมีความปลอดภัยต่อเธรดแค่ไหน?

ห้ามใช้อินสแตนซ์ Presentation เดียวกันจากหลายเธรด (/slides/th/nodejs-java/multithreading/) คำแนะนำคือ “หนึ่งเอกสาร — หนึ่งเธรด” สามารถประมวลผลไฟล์ต่าง ๆ พร้อมกันในเธรดแยกต่างหากได้

ดูเพิ่มเติม

Aspose ให้บริการ FREE Online Collage Maker ออนไลน์ ซึ่งคุณสามารถรวมภาพ JPG ไปยัง JPG หรือ PNG ไปยัง PNG, สร้าง photo grids และอื่น ๆ

ลองใช้ Aspose FREE Online Merger ซึ่งช่วยให้คุณรวมพรีเซนเทชัน PowerPoint ในรูปแบบเดียวกัน (เช่น PPT ไป PPT, PPTX ไป PPTX) หรือข้ามรูปแบบต่าง ๆ (เช่น PPT ไป PPTX, PPTX ไป ODP)

Aspose FREE Online Merger