Efektivně sloučit prezentace v C++
Přehled
Aspose.Slides vám umožňuje sloučit prezentace klonováním snímků z jedné prezentace do druhé. Tento článek vysvětluje, jak sloučit celé prezentace nebo vybrané snímky, použít hlavní snímek nebo konkrétní rozvržení během sloučení, pracovat s prezentacemi s různými velikostmi snímků a přidat sloučené snímky do sekce prezentace. Také pokrývá praktické poznámky související se sloučeným obsahem, včetně poznámek přednášejícího, komentářů, souborů chráněných heslem a používání vláken.
Sloučení prezentací
Když sloučíte jednu prezentaci s jinou, v podstatě kombinujete jejich snímky v jedné prezentaci a získáte jeden soubor.
Info
Většina programů pro prezentace (PowerPoint nebo OpenOffice) postrádá funkce, které uživatelům umožňují kombinovat prezentace tímto způsobem.
Aspose.Slides for C++, však umožňuje sloučit prezentace různými způsoby. Můžete sloučit prezentace se všemi jejich tvary, styly, texty, formátováním, komentáři, animacemi atd., aniž byste se museli obávat ztráty kvality nebo dat.
Viz také
Co lze sloučit
S Aspose.Slides můžete sloučit
- celé prezentace. Všechny snímky z prezentací skončí v jedné prezentaci
- konkrétní snímky. Vybrané snímky skončí v jedné prezentaci
- prezentace v jednom formátu (PPT na PPT, PPTX na PPTX atd.) i v různých formátech (PPT na PPTX, PPTX na ODP atd.) mezi sebou.
Poznámka
Kromě prezentací umožňuje Aspose.Slides sloučit i jiné soubory:
- Images, například JPG to JPG nebo PNG to PNG
- Dokumenty, například PDF to PDF nebo HTML to HTML
- A dva rozdílné soubory, například image to PDF nebo JPG to PDF nebo TIFF to PDF.
Možnosti sloučení
Můžete použít možnosti, které určují, zda
- každý snímek ve výstupní prezentaci zachová jedinečný styl
- pro všechny snímky ve výstupní prezentaci bude použit jeden konkrétní styl.
Pro sloučení prezentací poskytuje Aspose.Slides metody AddClone (z rozhraní ISlideCollection). Existuje několik implementací metod AddClone, které definují parametry procesu sloučení prezentací. Každý objekt Presentation má kolekci Slides, takže můžete zavolat metodu AddClone z prezentace, do které chcete snímky sloučit.
Metoda AddClone vrací objekt ISlide, což je klon zdrojového snímku. Snímky ve výstupní prezentaci jsou jednoduše kopií snímků ze zdroje. Proto můžete měnit výsledné snímky (například aplikovat styly, formátování nebo rozvržení) aniž byste ovlivnili původní prezentace.
Sloučení prezentací
Aspose.Slides poskytuje metodu AddClone (ISlide), která umožňuje kombinovat snímky tak, aby snímky zachovaly svá rozvržení a styly (výchozí parametry).
Tento kód v C++ ukazuje, jak sloučit prezentace:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide);
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
Sloučení prezentací s hlavním snímkem
Aspose.Slides poskytuje metodu AddClone (ISlide, IMasterSlide, bool), která umožňuje kombinovat snímky při aplikaci šablony hlavního snímku. Tímto způsobem můžete v případě potřeby změnit styl snímků ve výstupní prezentaci.
Tento kód v C++ demonstruje popsanou operaci:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide, pres2->get_Masters()->idx_get(0), true);
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
Poznámka
Rozvržení snímku pro hlavní snímek je určeno automaticky. Pokud není možné vhodné rozvržení určit, a parametrallowCloneMissingLayout metody AddClone je nastaven na true, použije se rozvržení zdrojového snímku. V opačném případě bude vyhozena výjimka PptxEditException.
Pokud chcete, aby snímky ve výstupní prezentaci měly jiné rozvržení, použijte při sloučení metodu AddClone (ISlide, ILayoutSlide).
Sloučení konkrétních snímků z prezentací
Sloučení konkrétních snímků z více prezentací je užitečné při tvorbě vlastních balíčků snímků. Aspose.Slides C++ umožňuje vybrat a importovat pouze snímky, které potřebujete. API zachovává formátování, rozvržení i design původních snímků.
Následující kód v C++ vytvoří novou prezentaci, přidá titulní snímky ze dvou dalších prezentací a uloží výsledek do souboru:
SmartPtr<ISlide> GetTitleSlide(SmartPtr<IPresentation> presentation)
{
for (auto&& slide : presentation->get_Slides())
{
if (slide->get_LayoutSlide()->get_LayoutType() == SlideLayoutType::Title)
{
return slide;
}
}
return nullptr;
}
auto presentation = MakeObject<Presentation>();
auto presentation1 = MakeObject<Presentation>(u"presentation1.pptx");
auto presentation2 = MakeObject<Presentation>(u"presentation2.pptx");
presentation->get_Slides()->RemoveAt(0);
auto slide1 = GetTitleSlide(presentation1);
if (slide1 != nullptr)
presentation->get_Slides()->AddClone(slide1);
auto slide2 = GetTitleSlide(presentation2);
if (slide2 != nullptr)
presentation->get_Slides()->AddClone(slide2);
presentation->Save(u"combined.pptx", SaveFormat::Pptx);
presentation2->Dispose();
presentation1->Dispose();
presentation->Dispose();
Sloučení prezentací s rozvržením snímku
Tento kód v C++ ukazuje, jak kombinovat snímky z prezentací při aplikaci vámi preferovaného rozvržení snímku, abyste získali jednu výstupní prezentaci:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide, pres2->get_LayoutSlides()->idx_get(0));
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
Sloučení prezentací s různými velikostmi snímků
Poznámka
Nelze sloučit prezentace s různými velikostmi snímků.Chcete-li sloučit 2 prezentace s různými velikostmi snímků, musíte velikost jedné z prezentací změnit tak, aby odpovídala velikosti druhé.
Tento ukázkový kód demonstruje popsanou operaci:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres1Size = pres1->get_SlideSize()->get_Size();
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
pres2->get_SlideSize()->SetSize(pres1Size.get_Width(), pres1Size.get_Height(), SlideSizeScaleType::EnsureFit);
for (const auto& slide : pres2->get_Slides())
{
pres1->get_Slides()->AddClone(slide);
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
Sloučení snímků do sekce prezentace
Tento kód v C++ ukazuje, jak sloučit konkrétní snímek do sekce v prezentaci:
auto pres1 = System::MakeObject<Presentation>(u"pres1.pptx");
auto pres2 = System::MakeObject<Presentation>(u"pres2.pptx");
for (int32_t index = 0; index < pres2->get_Slides()->get_Count(); index++)
{
auto slide = pres2->get_Slides()->idx_get(index);
pres1->get_Slides()->AddClone(slide, pres1->get_Sections()->idx_get(0));
}
pres1->Save(u"combined.pptx", SaveFormat::Pptx);
Snímek je přidán na konec sekce.
Tip
Aspose poskytuje FREE Collage web app. Pomocí této online služby můžete sloučit JPG to JPG nebo PNG na PNG obrázky, vytvořit photo grids a podobně.FAQ
Jsou poznámky přednášejícího zachovány při sloučení?
Ano. Při klonování snímků Aspose.Slides přenáší všechny prvky snímku, včetně poznámek, formátování a animací.
Přenesou se komentáře a jejich autoři?
Komentáře, jako součást obsahu snímku, jsou zkopírovány se snímkem. Štítky autorů komentářů jsou zachovány jako objekty komentářů ve výsledné prezentaci.
Co když je zdrojová prezentace chráněna heslem?
Musí být otevřena s heslem pomocí LoadOptions::set_Password; po načtení lze tyto snímky bezpečně klonovat do nechráněného cílového souboru (nebo také do chráněného).
Jak je operace sloučení bezpečná pro vlákna?
Neužívejte stejnou Presentation instanci z více vláken. Doporučené pravidlo je „jeden dokument — jedno vlákno“; různé soubory lze zpracovávat paralelně v samostatných vláknech.