C++-ban a prezentáció diainak elérése
Áttekintés
Ez a cikk bemutatja, hogyan lehet elérni és kezelni a diákat egy prezentációban az Aspose.Slides használatával. Megmutatja, hogyan lehet a diákat a nullától indexelt pozíció alapján lekérni a diák gyűjteményéből, illetve hogyan lehet egy diát a egyedi azonosítója alapján elérni a GetSlideById metódussal.
Megtanulod, hogyan változtatható meg egy dia pozíciója a set_SlideNumber metódus használatával, valamint hogyan állítható be a prezentáció első diája száma a set_FirstSlideNumber metódussal. A példák bemutatják egy prezentáció betöltését, a diareferenciák lekérését, a dia sorrendjének vagy számozásának frissítését, és a módosított prezentáció mentését.
Dia elérése index szerint
Minden dia egy prezentációban numerikusan van elrendezve a dia pozíciója alapján, 0‑tól kezdve. Az első dia elérhető a 0‑ás indexen; a második dia a 1‑es indexen; stb.
A Presentation osztály, amely egy prezentációs fájlt képvisel, a diákat egy ISlideCollection gyűjteményként (a ISlide objektumok gyűjteménye) teszi elérhetővé. Ez a C++ kód megmutatja, hogyan lehet egy diát az indexe alapján elérni:
// Az útvonal a dokumentumok könyvtárához.
const String templatePath = u"../templates/AddSlides.pptx";
// Példányosítja a Presentation osztályt
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Dia referencia lekérése az indexe alapján
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
Dia elérése azonosító szerint
Minden diához egy egyedi azonosító tartozik. A GetSlideById() metódus (amely a Presentation osztályban érhető el) segítségével célozhatod meg ezt az azonosítót. Ez a C++ kód megmutatja, hogyan adható meg egy érvényes diaazonosító, és hogyan érhető el a dia a GetSlideById() metódussal:
// Az útvonal a dokumentumok könyvtárához.
const String templatePath = u"../templates/AddSlides.pptx";
// Példányosítja a Presentation osztályt
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Lekéri a dia azonosítóját
int id = pres->get_Slides()->idx_get(0)->get_SlideId();
// A diát azonosítója alapján érjük el
SharedPtr<IBaseSlide> slide = pres->GetSlideById(id);
Dia pozíciójának módosítása
Az Aspose.Slides lehetővé teszi a dia pozíciójának módosítását. Például megadhatod, hogy az első dia a második legyen.
- Hozz létre egy példányt a Presentation osztályból.
- Szerezd meg a módosítani kívánt dia referenciaját a indexe alapján
- Állíts be egy új pozíciót a diához a set_SlideNumber() tulajdonság segítségével.
- Mentsd el a módosított prezentációt.
Ez a C++ kód bemutat egy műveletet, amelyben az 1‑es pozícióban lévő dia a 2‑es pozícióba kerül:
// Az útvonal a dokumentumok könyvtárához.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/ChangeSlidePosition.pptx";
// Példányosítja a Presentation osztályt
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Lekéri a diát, amelynek a pozíciója megváltozik
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Beállítja a dia új pozícióját
slide->set_SlideNumber(2);
// Mentse el a módosított prezentációt
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Az első dia a második lett; a második dia az első. Amikor egy dia pozícióját módosítod, a többi dia automatikusan igazodik.
Dia számának beállítása
A set_FirstSlideNumber() tulajdonság (amely a Presentation osztályban érhető el) segítségével megadhatsz egy új számot az első diához egy prezentációban. Ez a művelet a többi dia számát újraszámolja.
- Hozz létre egy példányt a Presentation osztályból.
- Szerezd meg a dia számát.
- Állítsd be a dia számát.
- Mentsd el a módosított prezentációt.
Ez a C++ kód bemutat egy műveletet, ahol az első dia száma 10‑re van állítva:
// Az útvonal a dokumentumok könyvtárához.
const String outPath = u"../out/SetSlideNumber_out.pptx";
const String templatePath = u"../templates/AccessSlides.pptx";
//Instantiates a Presentation osztályt
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Lekéri a dia számát
int firstSlideNumber = pres->get_FirstSlideNumber();
// Beállítja a dia számát
pres->set_FirstSlideNumber(2);
// Mentse el a módosított prezentációt
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Ha azt szeretnéd, hogy a számozás a második diával kezdődjön (és az első dia számozását elrejtve), ezt így teheted:
auto presentation = System::MakeObject<Presentation>();
auto layoutSlide = presentation->get_LayoutSlides()->GetByType(SlideLayoutType::Blank);
auto slides = presentation->get_Slides();
slides->AddEmptySlide(layoutSlide);
slides->AddEmptySlide(layoutSlide);
slides->AddEmptySlide(layoutSlide);
// Beállítja az első prezentációs dia számát
presentation->set_FirstSlideNumber(0);
// Megjeleníti a dia számokat az összes dián
presentation->get_HeaderFooterManager()->SetAllSlideNumbersVisibility(true);
// Elrejti az első dia számát
slides->idx_get(0)->get_HeaderFooterManager()->SetSlideNumberVisibility(false);
// Mentse el a módosított prezentációt
presentation->Save(u"output.pptx", SaveFormat::Pptx);
GYIK
Megegyezik-e a felhasználó által látott dia száma a gyűjtemény nullától indexelt pozíciójával?
A diához megjelenített szám tetszőleges értékkel (például 10) indulhat, és nem kell, hogy megegyezzen az indexszel; a kapcsolatot a prezentáció első dia száma ( set_FirstSlideNumber ) beállítása határozza meg.
Hatással vannak-e a rejtett diák az indexelésre?
Igen. Egy rejtett dia továbbra is szerepel a gyűjteményben, és beleszámít az indexelésbe; a „rejtett” a megjelenítésre vonatkozik, nem a gyűjteményben elfoglalt helyére.
Módosul-e egy dia indexe, amikor más diák kerülnek hozzáadásra vagy eltávolításra?
Igen. Az indexek mindig a diák aktuális sorrendjét tükrözik, és újraszámolódnak beszúrás, törlés és áthelyezés műveletek során.