Beheer opsommingstekens en genummerde lijsten in presentaties met PHP
Overzicht
Aspose.Slides for PHP via Java stelt je in staat om opsommingstekens en genummerde lijsten te maken en op te maken in PowerPoint- en OpenDocument-presentaties. Een lijstitem is een alinea waarvan de opsomminginstellingen worden beheerd via de alinea‑opmaak.
Gebruik de Paragraph.getParagraphFormat methode om lijstinstellingen op alinea‑niveau te benaderen. Het belangrijkste toegangspunt is ParagraphFormat.getBullet die een BulletFormat object retourneert. Met dit object kun je het type opsommingsteken, symbool, afbeelding, kleur, grootte, nummerstijl en startnummer instellen.
Dit artikel laat zien hoe je:
- een opsommingstekenlijst maken met een aangepast symbool
- een afbeelding‑opsommingsteken maken
- een meerlagige lijst maken door de alinea‑diepte in te stellen
- een genummerde lijst maken
- lijstopmaak inspecteren en wijzigen in een bestaande presentatie
Maak een opsommingstekenlijst
Om een opsommingstekenlijst te maken, voeg je Paragraph objecten toe aan een TextFrame en stel je BulletFormat.setType in op BulletType.Symbol. Je kunt vervolgens BulletFormat.setChar, BulletFormat.getColor, en BulletFormat.setHeight instellen om het uiterlijk van het opsommingsteken te controleren.
De volgende PHP‑code toont hoe je een opsommingstekenlijst maakt in een dia:
function createParagraph($paragraphText)
{
$paragraph = new Paragraph();
$paragraph->getParagraphFormat()->getBullet()->setType(BulletType::Symbol);
$paragraph->getParagraphFormat()->getBullet()->setChar("*");
$paragraph->getParagraphFormat()->setIndent(15);
$paragraph->getParagraphFormat()->getBullet()->setBulletHardColor(NullableBool::True);
$bulletColor = new Java("java.awt.Color", 205, 92, 92);
$paragraph->getParagraphFormat()->getBullet()->getColor()->setColor($bulletColor);
$paragraph->getParagraphFormat()->getBullet()->setHeight(100);
$paragraph->setText($paragraphText);
return $paragraph;
}
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 20, 200, 50);
$textFrame = $autoShape->getTextFrame();
$textFrame->getParagraphs()->clear();
$paragraph1 = createParagraph("The first paragraph");
$textFrame->getParagraphs()->add($paragraph1);
$paragraph2 = createParagraph("The second paragraph");
$textFrame->getParagraphs()->add($paragraph2);
$presentation->save("symbol_bullets.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
Het resultaat:

Een genummerde lijst maken
Gebruik genummerde lijsten wanneer de volgorde van items van belang is. Stel BulletFormat.setType in op BulletType.Numbered. Je kunt ook een nummeropmaak kiezen met BulletFormat.setNumberedBulletStyle of BulletFormat.setNumberedBulletStartWith instellen als de lijst moet beginnen met een andere waarde dan 1.
De volgende PHP‑code laat zien hoe je een genummerde lijst maakt in een dia:
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 20, 90, 80);
$textFrame = $autoShape->getTextFrame();
$textFrame->getParagraphs()->clear();
$paragraph1 = new Paragraph();
$paragraph1->getParagraphFormat()->getBullet()->setType(BulletType::Numbered);
$paragraph1->setText("Apple");
$textFrame->getParagraphs()->add($paragraph1);
$paragraph2 = new Paragraph();
$paragraph2->getParagraphFormat()->getBullet()->setType(BulletType::Numbered);
$paragraph2->setText("Orange");
$textFrame->getParagraphs()->add($paragraph2);
$paragraph3 = new Paragraph();
$paragraph3->getParagraphFormat()->getBullet()->setType(BulletType::Numbered);
$paragraph3->setText("Banana");
$textFrame->getParagraphs()->add($paragraph3);
$presentation->save("numbered_bullets.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
Het resultaat:

Een afbeelding‑opsommingsteken maken
Aspose.Slides stelt je in staat om een regulier opsommingsteken te vervangen door een afbeelding. Afbeeldingsopsommingstekens werken het beste met eenvoudige afbeeldingen die leesbaar blijven op een kleine afmeting, zoals iconen of kleine transparante PNG‑bestanden.
Om een afbeelding‑opsommingsteken te maken, voeg je een afbeelding toe via Presentation.getImages en wijs je het geretourneerde PPImage object toe aan BulletFormat.getPicture. Stel BulletFormat.setType in op BulletType.Picture voordat je de afbeelding toewijst.
Stel dat we een “image.png” hebben:

De volgende PHP‑code laat zien hoe je afbeelding‑opsommingstekens maakt in een dia:
function createParagraph($paragraphText, $bulletImage)
{
$paragraph = new Paragraph();
$paragraph->getParagraphFormat()->getBullet()->setType(BulletType::Picture);
$paragraph->getParagraphFormat()->getBullet()->getPicture()->setImage($bulletImage);
$paragraph->getParagraphFormat()->setIndent(15);
$paragraph->getParagraphFormat()->getBullet()->setHeight(100);
$paragraph->setText($paragraphText);
return $paragraph;
}
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 20, 200, 50);
$textFrame = $autoShape->getTextFrame();
$textFrame->getParagraphs()->clear();
$image = Images::fromFile("image.png");
$bulletImage = $presentation->getImages()->addImage($image);
$paragraph1 = createParagraph("The first paragraph", $bulletImage);
$textFrame->getParagraphs()->add($paragraph1);
$paragraph2 = createParagraph("The second paragraph", $bulletImage);
$textFrame->getParagraphs()->add($paragraph2);
$presentation->save("picture_bullets.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
Het resultaat:

Een meerlagige lijst maken
Gebruik ParagraphFormat.setDepth om lijstitems op verschillende niveaus te plaatsen. Niveau 0 is het hoogste niveau, niveau 1 is eronder genest, enzovoort.
De volgende PHP‑code laat zien hoe je een meerlagige opsommingstekenlijst maakt:
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 20, 20, 260, 110);
$textFrame = $autoShape->getTextFrame();
$textFrame->getParagraphs()->clear();
$paragraph1 = new Paragraph();
$paragraph1->getParagraphFormat()->setDepth(0);
$paragraph1->setText("My text - Depth 0");
$textFrame->getParagraphs()->add($paragraph1);
$paragraph2 = new Paragraph();
$paragraph2->getParagraphFormat()->setDepth(1);
$paragraph2->setText("My text - Depth 1");
$textFrame->getParagraphs()->add($paragraph2);
$paragraph3 = new Paragraph();
$paragraph3->getParagraphFormat()->setDepth(2);
$paragraph3->setText("My text - Depth 2");
$textFrame->getParagraphs()->add($paragraph3);
$paragraph4 = new Paragraph();
$paragraph4->getParagraphFormat()->setDepth(3);
$paragraph4->setText("My text - Depth 3");
$textFrame->getParagraphs()->add($paragraph4);
$presentation->save("multilevel_bullets.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
Het resultaat:

Een bestaande lijst wijzigen
Om de lijstopmaak in een bestaande presentatie te wijzigen, krijg je toegang tot de betreffende alinea en werk je de ParagraphFormat.getBullet instellingen bij. Dezelfde eigenschappen die gebruikt worden om lijsten te maken, kunnen ook worden gebruikt om lijsten die uit een PPT, PPTX, of ODP‑bestand zijn geladen te inspecteren of te wijzigen.
De volgende PHP‑code wijzigt de eerste alinea in een tekstframe zodat deze een genummerde lijststijl gebruikt:
$presentation = new Presentation("input.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->get_Item(0);
$paragraph = $autoShape->getTextFrame()->getParagraphs()->get_Item(0);
$paragraph->getParagraphFormat()->getBullet()->setType(BulletType::Numbered);
$paragraph->getParagraphFormat()->getBullet()->setNumberedBulletStyle(NumberedBulletStyle::BulletRomanUCPeriod);
$paragraph->getParagraphFormat()->getBullet()->setNumberedBulletStartWith(1);
$paragraph->getParagraphFormat()->setMarginLeft(30);
$paragraph->getParagraphFormat()->setIndent(-20);
$presentation->save("updated_list.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
FAQ
Kunnen opsommingsteken‑ en genummerde lijsten geëxporteerd worden naar PDF of afbeeldingen?
Ja. Aspose.Slides behoudt de lijstopmaak wanneer het doelformaat de corresponderende tekstlay‑out en opsommingstekenfuncties ondersteunt.
Kan ik lijsten bewerken in bestaande presentaties?
Ja. Laad de presentatie, krijg toegang tot de betreffende alinea, inspecteer of werk de ParagraphFormat.getBullet instellingen bij, en sla de presentatie op.
Kunnen lijsten niet‑Latijnse tekst bevatten?
Ja. De tekst van lijstitems kan Unicode‑tekens bevatten, zodat je lijsten kunt maken in meertalige presentaties. Zorg ervoor dat de fonts die in de presentatie worden gebruikt de benodigde tekens ondersteunen.