Слияние презентаций

Слияние презентаций

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

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

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

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

Опции слияния

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

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

Для слияния презентаций Aspose.Slides предоставляет методы AddClone (из интерфейса ISlideCollection). Существует несколько реализаций методов AddClone, которые определяют параметры процесса слияния презентаций. Каждый объект Presentation имеет коллекцию Slides, поэтому вы можете вызвать метод AddClone из презентации, в которую хотите объединить слайды.

Метод AddClone возвращает объект ISlide, который является клоном исходного слайда. Слайды в выходной презентации являются просто копией слайдов из источника. Следовательно, вы можете вносить изменения в результирующие слайды (например, применять стили или параметры форматирования или макеты), не беспокоясь о том, что исходные презентации будут затронуты.

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

Aspose.Slides предоставляет метод AddClone(ISlide) , который позволяет вам объединять слайды, сохраняя их макеты и стили (по умолчанию).

Этот код на Java показывает, как объединить презентации:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

Этот код на Java демонстрирует описанную операцию:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

Если вы хотите, чтобы слайды в выходной презентации имели другой макет, используйте метод AddClone(ISlide, ILayoutSlide) вместо этого при слиянии.

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

Этот код на Java показывает, как выбрать и объединить конкретные слайды из разных презентаций, чтобы получить одну выходную презентацию:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

Этот код на Java показывает, как объединить слайды из презентаций, применяя предпочитаемый макет слайда к ним, чтобы получить одну выходную презентацию:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

Чтобы объединить 2 презентации с разными размерами слайдов, вам нужно изменить размер одной из презентаций, чтобы его размер соответствовал размеру другой презентации.

Этот образец кода демонстрирует описанную операцию:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        pres2.getSlideSize().setSize((float)pres1.getSlideSize().getSize().getWidth(), (float)pres1.getSlideSize().getSize().getHeight(), SlideSizeScaleType.EnsureFit);

        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

Этот код на Java показывает, как объединить конкретный слайд в раздел презентации:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

Слайд добавляется в конец раздела.