Объединение презентации

Объединение презентаций

Когда вы объединяете одну презентацию с другой, вы фактически объединяете их слайды в одну презентацию, получая один файл.

Что можно объединять

С помощью Aspose.Slides вы можете объединять

  • целые презентации. Все слайды из презентаций окажутся в одной презентации
  • отдельные слайды. Выбранные слайды окажутся в одной презентации
  • презентации в одном формате (PPT в PPT, PPTX в PPTX и т.д.) и в разных форматах (PPT в PPTX, PPTX в ODP и т.д.) друг с другом.

Параметры объединения

Вы можете задать параметры, определяющие, будет ли

  • каждый слайд в получающейся презентации сохраняет уникальный стиль
  • для всех слайдов в получающейся презентации используется один и тот же стиль.

Для объединения презентаций Aspose.Slides предоставляет методы addClone (из класса SlideCollection). Существует несколько реализаций методов addClone, определяющих параметры процесса объединения презентаций. Каждый объект 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();
    }
}

Объединение презентаций с мастер‑слайдом

Aspose.Slides предоставляет метод AddClone(ISlide, IMasterSlide, boolean), который позволяет комбинировать слайды, одновременно применяя шаблон мастер‑презентации. Таким образом, при необходимости вы можете изменить стиль слайдов в получающейся презентации.

Этот код на 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();
}

Объединение презентаций с макетом слайда

Этот код на 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

Сохраняются ли заметки выступающего при объединении?

Да. При клонировании слайдов Aspose.Slides переносит все элементы слайда, включая заметки, форматирование и анимацию.

Переносятся ли комментарии и их авторы?

Комментарии, как часть содержимого слайда, копируются вместе со слайдом. Метки авторов комментариев сохраняются как объекты комментариев в полученной презентации.

Что делать, если исходная презентация защищена паролем?

Она должна быть открыта с паролем через LoadOptions.setPassword; после загрузки эти слайды можно безопасно клонировать в незащищённый целевой файл (или в защищённый).

Насколько потокобезопасна операция объединения?

Не используйте один и тот же объект Presentation из нескольких потоков. Рекомендуемое правило — «один документ — один поток»; разные файлы могут обрабатываться параллельно в отдельных потоках.

См. также

Aspose предоставляет FREE Online Collage Maker. С помощью этого онлайн‑сервиса вы можете объединять изображения JPG в JPG или PNG в PNG, создавать фото‑сетки и многое другое.

Посетите Aspose FREE Online Merger. Он позволяет объединять презентации PowerPoint в одном формате (например, PPT в PPT, PPTX в PPTX) или между разными форматами (например, PPT в PPTX, PPTX в ODP).

Aspose FREE Online Merger