รวมงานนำเสนออย่างมีประสิทธิภาพใน PHP

ภาพรวม

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

การรวมงานนำเสนอ

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

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

With Aspose.Slides, you can merge

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

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

You can apply options that determine whether

  • แต่ละสไลด์ในงานนำเสนอผลลัพธ์จะคงสไตล์เฉพาะของตน
  • สไตล์เฉพาะจะถูกใช้กับสไลด์ทั้งหมดในงานนำเสนอผลลัพธ์.

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

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

รวมงานนำเสนอ

Aspose.Slides มีเมธอด addClone(Slide) ที่ช่วยให้คุณรวมสไลด์โดยสไลด์คงเค้าโครงและสไตล์เดิม (พารามิเตอร์ค่าเริ่มต้น).

โค้ด PHP นี้จะแสดงวิธีการรวมงานนำเสนอ:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

รวมงานนำเสนอด้วยสไลด์มาสเตอร์

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

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

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getMasters()->get_Item(0), true);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

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

รวมสไลด์เฉพาะจากงานนำเสนอ

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

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

function getTitleSlide(Presentation $presentation) {
    for ($i = 0; $i < java_values($presentation->getSlides()->size()); $i++) {
        $slide = $presentation->getSlides()->get_Item($i);
        if (java_values($slide->getLayoutSlide()->getLayoutType()) === SlideLayoutType::Title) {
            return $slide;
        }
    }
    return null;
}
$presentation = new Presentation();
$presentation1 = new Presentation($folderPath . "presentation1.pptx");
$presentation2 = new Presentation($folderPath . "presentation2.pptx");
try {
    $presentation->getSlides()->removeAt(0);
    
    $slide1 = getTitleSlide($presentation1);

    if ($slide1 != null)
        $presentation->getSlides()->addClone($slide1);

    $slide2 = getTitleSlide($presentation2);

    if ($slide2 != null)
        $presentation->getSlides()->addClone($slide2);

    $presentation->save($folderPath . "combined.pptx", SaveFormat::Pptx);
} finally {
    $presentation2->dispose();
    $presentation1->dispose();
    $presentation->dispose();
}

รวมงานนำเสนอด้วยเค้าโครงสไลด์

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

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

รวมงานนำเสนอที่มีขนาดสไลด์แตกต่างกัน

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

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

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      $pres2->getSlideSize()->setSize($pres1->getSlideSize()->getSize()->getWidth(), $pres1->getSlideSize()->getSize()->getHeight(), SlideSizeScaleType::EnsureFit);
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

รวมสไลด์ไปยังส่วนของงานนำเสนอ

โค้ด PHP นี้จะแสดงวิธีการรวมสไลด์เฉพาะไปยังส่วนของงานนำเสนอ:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres1->getSections()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

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

ดูเพิ่มเติม

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

คำถามที่พบบ่อย

มีข้อจำกัดใดเกี่ยวกับจำนวนสไลด์เมื่อรวมงานนำเสนอหรือไม่?

ไม่มีข้อจำกัดที่เข้มงวด Aspose.Slides สามารถจัดการไฟล์ขนาดใหญ่ได้ แต่ประสิทธิภาพขึ้นอยู่กับขนาดและทรัพยากรของระบบ สำหรับงานนำเสนอที่ใหญ่มาก แนะนำให้ใช้ JVM 64-bit และจัดสรรหน่วยความจำ heap เพียงพอ.

ฉันสามารถรวมงานนำเสนอที่มีวิดีโอหรือเสียงฝังอยู่ได้หรือไม่?

ใช่ Aspose.Slides จะคงเนื้อหามัลติมีเดียที่ฝังในสไลด์ไว้ แต่ไฟล์งานนำเสนอสุดท้ายอาจมีขนาดใหญ่ขึ้นอย่างมีนัยสำคัญ.

แบบอักษรจะถูกคงไว้เมื่อรวมงานนำเสนอหรือไม่?

ใช่ แบบอักษรที่ใช้ในงานนำต้นแบบจะถูกคงไว้ในไฟล์ผลลัพธ์ โดยสมมติว่ามีการติดตั้งบนระบบหรือ embedded.