ادغام مؤثر ارائه‌ها در PHP

بررسی کلی

Aspose.Slides به شما امکان می‌دهد تا ارائه‌ها را با کپی کردن اسلایدها از یک ارائه به ارائه دیگر ترکیب کنید. این مقاله توضیح می‌دهد که چگونه می‌توانید کل ارائه‌ها یا اسلایدهای انتخابی را ادغام کنید، از یک اسلاید مستر یا طرح‌بندی خاص در حین ادغام استفاده کنید، ارائه‌های با اندازه اسلاید متفاوت را مدیریت کنید، و اسلایدهای ادغام‌شده را به یک بخش از ارائه اضافه کنید. همچنین نکات عملی مربوط به محتوای ادغام‌شده، از جمله یادداشت‌های گوینده، نظرات، فایل‌های منبع دارای گذرواژه، و استفاده از نخ‌ها را پوشش می‌دهد.

ادغام ارائه‌ها

هنگامی که یک ارائه را به ارائه دیگری ادغام می‌کنید، عملاً اسلایدهای آن‌ها را در یک ارائه ترکیب می‌کنید تا یک فایل به دست آید.

چه چیزهایی می‌تواند ادغام شود

با Aspose.Slides می‌توانید

  • کل ارائه‌ها را ادغام کنید. تمام اسلایدهای ارائه‌ها در یک ارائه جمع می‌شوند
  • اسلایدهای مشخصی را ادغام کنید. اسلایدهای انتخابی در یک ارائه جمع می‌شوند
  • ارائه‌ها را در یک فرمت (PPT به PPT، PPTX به PPTX و غیره) و در فرمت‌های مختلف (PPT به PPTX، PPTX به ODP و غیره) به همدیگر متصل کنید.

گزینه‌های ادغام

می‌توانید گزینه‌هایی اعمال کنید که تعیین می‌کنند:

  • هر اسلاید در ارائه خروجی یک سبک منحصر به فرد نگه دارد
  • یک سبک خاص برای تمام اسلایدهای ارائه خروجی استفاده شود.

برای ادغام ارائه‌ها، 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();
    }
  }

ادغام ارائه‌ها با اندازه اسلاید متفاوت

برای ادغام ۲ ارائه با اندازه اسلاید متفاوت، باید یکی از ارائه‌ها را طوری تغییر اندازه دهید که اندازه آن با ارائه دیگر منطبق شود.

این کد نمونه عملیات توصیف‌شده را نشان می‌دهد:

  $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 یک ابزار ساخت کلاژ آنلاین رایگان ارائه می‌دهد. با استفاده از این سرویس آنلاین می‌توانید JPG به JPG یا PNG به PNG را ادغام کنید، شبکه‌های تصویری ایجاد کنید و موارد دیگری نیز انجام دهید.

به ادغام‌کننده رایگان آنلاین Aspose نگاهی بیندازید. این سرویس به شما امکان می‌دهد ارائه‌های PowerPoint را در همان فرمت (مثلاً PPT به PPT، PPTX به PPTX) یا در فرمت‌های مختلف (مثلاً PPT به PPTX، PPTX به ODP) ادغام کنید.

Aspose FREE Online Merger

سؤالات متداول

آیا محدودیتی برای تعداد اسلایدها هنگام ادغام ارائه‌ها وجود دارد؟

محدودیت سخت‌گیری وجود ندارد. Aspose.Slides می‌تواند فایل‌های بزرگ را مدیریت کند، اما عملکرد به اندازه فایل و منابع سیستم بستگی دارد. برای ارائه‌های بسیار بزرگ توصیه می‌شود از JVM ۶۴ بیتی استفاده کرده و حافظه heap کافی تخصیص دهید.

آیا می‌توانم ارائه‌ها را با ویدیو یا صداهای جاسازی‌شده ادغام کنم؟

بله، Aspose.Slides محتوای چندرسانه‌ای جاسازی‌شده در اسلایدها را حفظ می‌کند، اما ممکن است اندازه نهایی ارائه به‌ طور قابل‌ توجهی بزرگ‌تر شود.

آیا قلم‌ها هنگام ادغام ارائه‌ها حفظ می‌شوند؟

بله. قلم‌های استفاده‌شده در ارائه‌های منبع در فایل خروجی حفظ می‌شوند، به شرط آنکه روی سیستم نصب شده باشند یا جاسازی شده.