Объединение презентации
Объединение презентаций
Когда вы объединяете одну презентацию с другой, вы фактически объединяете их слайды в одну презентацию, получая один файл.
Info
Большинству программ для работы с презентациями (PowerPoint или OpenOffice) не хватает функций, позволяющих пользователям комбинировать презентации таким образом.
Aspose.Slides for Node.js via Java, однако позволяет объединять презентации различными способами. Вы можете объединять презентации со всеми их объектами, стилями, текстами, форматированием, комментариями, анимациями и т.д., не беспокоясь о потере качества или данных.
См. также
Что можно объединять
С помощью Aspose.Slides вы можете объединять
- целые презентации. Все слайды из презентаций окажутся в одной презентации
- отдельные слайды. Выбранные слайды окажутся в одной презентации
- презентации в одном формате (PPT в PPT, PPTX в PPTX и т.д.) и в разных форматах (PPT в PPTX, PPTX в ODP и т.д.) друг с другом.
Note
Помимо презентаций, Aspose.Slides позволяет объединять другие файлы:
- Imagess, такие как JPG в JPG или PNG в PNG
- Документы, такие как PDF в PDF или HTML в HTML
- И два разных файла, такие как image в PDF JPG в PDF или TIFF в PDF.
Параметры объединения
Вы можете задать параметры, определяющие, будет ли
- каждый слайд в получающейся презентации сохраняет уникальный стиль
- для всех слайдов в получающейся презентации используется один и тот же стиль.
Для объединения презентаций 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();
}
}
Note
Макет слайда для мастер‑слайда определяется автоматически. Когда подходящий макет нельзя определить, если логический параметрallowCloneMissingLayout метода addClone установлен в true, используется макет исходного слайда. В противном случае будет выброшено исключение PptxEditException.
Если вы хотите, чтобы слайды в получающейся презентации имели другой макет, используйте вместо этого метод 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();
}
}
Объединение презентаций с разными размерами слайдов
Note
Нельзя объединять презентации с разными размерами слайдов.Чтобы объединить 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).
