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:

A szimbólum jelölők

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:

A számozott jelölők

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.

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:

Kép a felsoroláshoz

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:

A képjelölők

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:

A többszintű lista

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.