C++-ban felsorolási és számozott listák kezelése a prezentációkban
Áttekintés
Az Aspose.Slides for C++ lehetővé teszi, hogy felsorolás‑ és számozott listákat hozzon létre és formázzon PowerPoint és OpenDocument prezentációkban. A listaelem egy bekezdés, amelynek a felsorolás beállításait a bekezdés formátuma vezérli.
Használja az IParagraph::get_ParagraphFormat metódust a bekezdés szintű lista beállítások eléréséhez. A fő belépési pont az IParagraphFormat::get_Bullet, amely egy IBulletFormat objektumot ad vissza. Ezzel az objektummal beállíthatja a felsorolás típusát, szimbólumát, képét, színét, méretét, számozási stílusát és a kezdő számot.
Ez a cikk bemutatja, hogyan:
- felsorolás létrehozása egy egyedi szimbólummal
- képjelölő létrehozása
- többszintű lista létrehozása a bekezdés mélységének beállításával
- számozott lista létrehozása
- lista formázásának megtekintése és módosítása egy meglévő prezentációban
Felsorolás létrehozása
Felsorolás létrehozásához adjon Paragraph objektumokat egy ITextFrame-hez, és állítsa be az IBulletFormat::set_Type értékét a BulletType::Symbol-ra. Ezután beállíthatja az IBulletFormat::set_Char, IBulletFormat::get_Color és IBulletFormat::set_Height értékeket a felsorolás megjelenésének szabályozásához.
Az alábbi C++ kód bemutatja, hogyan hozhat létre felsorolást egy dián:
auto createParagraph = [](System::String text)
{
auto paragraph = System::MakeObject<Paragraph>();
auto paragraphFormat = paragraph->get_ParagraphFormat();
auto bulletFormat = paragraphFormat->get_Bullet();
bulletFormat->set_Type(BulletType::Symbol);
bulletFormat->set_Char(u'*');
paragraphFormat->set_Indent(15);
bulletFormat->set_IsBulletHardColor(NullableBool::True);
bulletFormat->get_Color()->set_Color(System::Drawing::Color::get_IndianRed());
bulletFormat->set_Height(100);
paragraph->set_Text(text);
return paragraph;
};
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 20, 20, 200, 50);
auto textFrame = autoShape->get_TextFrame();
textFrame->get_Paragraphs()->Clear();
auto paragraph1 = createParagraph(u"The first paragraph");
textFrame->get_Paragraphs()->Add(paragraph1);
auto paragraph2 = createParagraph(u"The second paragraph");
textFrame->get_Paragraphs()->Add(paragraph2);
presentation->Save(u"symbol_bullets.pptx", SaveFormat::Pptx);
presentation->Dispose();
Az eredmény:

Számozott lista létrehozása
Használjon számozott listákat, ha az elemek sorrendje fontos. Állítsa az IBulletFormat::set_Type értékét a BulletType::Numbered-ra. Választhat számozási formátumot az IBulletFormat::set_NumberedBulletStyle segítségével, vagy beállíthatja a IBulletFormat::set_NumberedBulletStartWith értékét, ha a lista nem 1‑től szeretne indulni.
Az alábbi C++ kód megmutatja, hogyan hozhat létre számozott listát egy dián:
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 20, 20, 90, 80);
auto textFrame = autoShape->get_TextFrame();
textFrame->get_Paragraphs()->Clear();
auto paragraph1 = System::MakeObject<Paragraph>();
paragraph1->get_ParagraphFormat()->get_Bullet()->set_Type(BulletType::Numbered);
paragraph1->set_Text(u"Apple");
textFrame->get_Paragraphs()->Add(paragraph1);
auto paragraph2 = System::MakeObject<Paragraph>();
paragraph2->get_ParagraphFormat()->get_Bullet()->set_Type(BulletType::Numbered);
paragraph2->set_Text(u"Orange");
textFrame->get_Paragraphs()->Add(paragraph2);
auto paragraph3 = System::MakeObject<Paragraph>();
paragraph3->get_ParagraphFormat()->get_Bullet()->set_Type(BulletType::Numbered);
paragraph3->set_Text(u"Banana");
textFrame->get_Paragraphs()->Add(paragraph3);
presentation->Save(u"numbered_bullets.pptx", SaveFormat::Pptx);
presentation->Dispose();
Az eredmény:

Képjelölő létrehozása
Az Aspose.Slides lehetővé teszi, hogy egy szabályos felsorolás szimbólumát képpel helyettesítse. A képjelölők leginkább egyszerű, kicsi méretben is olvasható képekkel működnek, például ikonokkal vagy átlátszó PNG fájlokkal.
Ideális esetben, ha a szabályos felsorolás szimbólumát képpel akarja helyettesíteni, a legjobb egy egyszerű, átlátszó háttérrel rendelkező grafikát választani. Az ilyen képek jól használhatók egyedi felsorolás‑szimbólumokként.
Tartsa szem előtt, hogy a képet nagyon kicsire kell méretezni. Emiatt erősen ajánljuk, hogy olyan képet válasszon, amely tiszta és vizuálisan hatékony marad, amikor felsorolás‑elemként használják.
Képjelölő létrehozásához adjon képet a IPresentation::get_Images gyűjteményhez, és a visszakapott IPPImage objektumot rendelje az IBulletFormat::get_Picture property‑hez. A kép hozzárendelése előtt állítsa be az IBulletFormat::set_Type értékét a BulletType::Picture‑ra.
Tegyük fel, hogy van egy “image.png” nevű fájlunk:

Az alábbi C++ kód megmutatja, hogyan hozhat létre képjelölőket egy dián:
auto createParagraph = [](System::String text, System::SharedPtr<IPPImage> image)
{
auto paragraph = System::MakeObject<Paragraph>();
auto paragraphFormat = paragraph->get_ParagraphFormat();
auto bulletFormat = paragraphFormat->get_Bullet();
bulletFormat->set_Type(BulletType::Picture);
bulletFormat->get_Picture()->set_Image(image);
paragraphFormat->set_Indent(15);
bulletFormat->set_Height(100);
paragraph->set_Text(text);
return paragraph;
};
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 20, 20, 200, 50);
auto textFrame = autoShape->get_TextFrame();
textFrame->get_Paragraphs()->Clear();
auto sourceImage = Images::FromFile(u"image.png");
auto bulletImage = presentation->get_Images()->AddImage(sourceImage);
sourceImage->Dispose();
auto paragraph1 = createParagraph(u"The first paragraph", bulletImage);
textFrame->get_Paragraphs()->Add(paragraph1);
auto paragraph2 = createParagraph(u"The second paragraph", bulletImage);
textFrame->get_Paragraphs()->Add(paragraph2);
presentation->Save(u"picture_bullets.pptx", SaveFormat::Pptx);
presentation->Dispose();
Az eredmény:

Többszintű lista létrehozása
Használja az IParagraphFormat::set_Depth metódust a listaelemek különböző szintekre helyezéséhez. Az 0‑szint a legfelső szint, az 1‑szint alatta van, stb.
Az alábbi C++ kód bemutatja, hogyan hozhat létre többszintű felsorolást:
auto presentation = System::MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 20, 20, 260, 110);
auto textFrame = autoShape->get_TextFrame();
textFrame->get_Paragraphs()->Clear();
auto paragraph1 = System::MakeObject<Paragraph>();
paragraph1->get_ParagraphFormat()->set_Depth(0);
paragraph1->set_Text(u"My text - Depth 0");
textFrame->get_Paragraphs()->Add(paragraph1);
auto paragraph2 = System::MakeObject<Paragraph>();
paragraph2->get_ParagraphFormat()->set_Depth(1);
paragraph2->set_Text(u"My text - Depth 1");
textFrame->get_Paragraphs()->Add(paragraph2);
auto paragraph3 = System::MakeObject<Paragraph>();
paragraph3->get_ParagraphFormat()->set_Depth(2);
paragraph3->set_Text(u"My text - Depth 2");
textFrame->get_Paragraphs()->Add(paragraph3);
auto paragraph4 = System::MakeObject<Paragraph>();
paragraph4->get_ParagraphFormat()->set_Depth(3);
paragraph4->set_Text(u"My text - Depth 3");
textFrame->get_Paragraphs()->Add(paragraph4);
presentation->Save(u"multilevel_bullets.pptx", SaveFormat::Pptx);
presentation->Dispose();
Az eredmény:

Meglévő lista módosítása
A lista formázásának módosításához egy meglévő prezentációban, érje el a cél bekezdést, és frissítse annak IParagraphFormat::get_Bullet beállításait. A listák létrehozásához használt ugyanazok a tulajdonságok használhatók a PPT, PPTX vagy ODP fájlból betöltött listák vizsgálatához vagy módosításához.
Az alábbi C++ kód a szövegkeret első bekezdését számozott lista stílusra állítja:
auto presentation = System::MakeObject<Presentation>(u"input.pptx");
auto slide = presentation->get_Slide(0);
auto autoShape = System::ExplicitCast<IAutoShape>(slide->get_Shape(0));
auto paragraph = autoShape->get_TextFrame()->get_Paragraph(0);
auto paragraphFormat = paragraph->get_ParagraphFormat();
auto bulletFormat = paragraphFormat->get_Bullet();
bulletFormat->set_Type(BulletType::Numbered);
bulletFormat->set_NumberedBulletStyle(NumberedBulletStyle::BulletRomanUCPeriod);
bulletFormat->set_NumberedBulletStartWith(1);
paragraphFormat->set_MarginLeft(30);
paragraphFormat->set_Indent(-20);
presentation->Save(u"updated_list.pptx", SaveFormat::Pptx);
presentation->Dispose();
GYIK
Exportálhatóak a felsorolás‑ és számozott listák PDF‑re vagy képekre?
Igen. Az Aspose.Slides megőrzi a lista formázását, ha a célnyelv támogatja a megfelelő szövegelrendezést és felsorolás‑jellemzőket.
Szerkeszthetek listákat meglévő prezentációkban?
Igen. Töltse be a prezentációt, érje el a cél bekezdést, vizsgálja vagy frissítse annak IParagraphFormat::get_Bullet beállításait, majd mentse a prezentációt.
Tartalmazhatnak a listák nem latin betűket?
Igen. A listaelemek szövege Unicode karaktereket tartalmazhat, így többnyelvű listákat hozhat létre. Győződjön meg arról, hogy a prezentációban használt betűkészletek támogatják a szükséges karaktereket.