إدارة القوائم النقطية والمرقمة في العروض التقديمية باستخدام PHP
نظرة عامة
يتيح Aspose.Slides for PHP via Java إنشاء وتنسيق القوائم النقطية والمرقمة في عروض PowerPoint وOpenDocument. عنصر القائمة هو فقرة يتم التحكم في إعدادات العلامة النقطية الخاصة به من خلال تنسيق الفقرة الخاص بها.
استخدم طريقة Paragraph.getParagraphFormat للوصول إلى إعدادات القائمة على مستوى الفقرة. النقطة الأساسية هي ParagraphFormat.getBullet التي تُرجع كائنًا من النوع BulletFormat. باستخدام هذا الكائن يمكنك تعيين نوع العلامة النقطية، الرمز، الصورة، اللون، الحجم، نمط الترقيم، ورقم البداية.
توضح هذه المقالة كيفية:
- إنشاء قائمة نقطية برمز مخصص
- إنشاء علامة نقطية صورة
- إنشاء قائمة متعددة المستويات عن طريق ضبط عمق الفقرة
- إنشاء قائمة مرقمة
- فحص وتغيير تنسيق القوائم في عرض تقديمي موجود
إنشاء قائمة نقطية
لإنشاء قائمة نقطية، أضف كائنات Paragraph إلى TextFrame واضبط BulletFormat.setType إلى BulletType.Symbol. بعد ذلك يمكنك ضبط BulletFormat.setChar، BulletFormat.getColor، وBulletFormat.setHeight للتحكم في مظهر العلامة النقطية.
الكود PHP التالي يوضح كيفية إنشاء قائمة نقطية في شريحة:
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();
}
}
النتيجة:

إنشاء قائمة مرقمة
استخدم القوائم المرقمة عندما يكون ترتيب العناصر مهمًا. اضبط BulletFormat.setType إلى BulletType.Numbered. يمكنك أيضًا اختيار تنسيق الترقيم باستخدام BulletFormat.setNumberedBulletStyle أو ضبط BulletFormat.setNumberedBulletStartWith عندما يجب أن تبدأ القائمة من قيمة غير 1.
الكود PHP التالي يوضح كيفية إنشاء قائمة مرقمة في شريحة:
$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();
}
}
النتيجة:

إنشاء علامة نقطية صورة
يتيح Aspose.Slides استبدال الرمز النقطي العادي بصورة. تعمل العلامات النقطية الصورية بشكل أفضل مع الصور البسيطة التي تظل قابلة للقراءة بحجم صغير، مثل الأيقونات أو ملفات PNG الشفافة الصغيرة.
لإنشاء علامة نقطية صورة، أضف صورة إلى Presentation.getImages وعيّن كائن PPImage الذي تم إرجاعه إلى BulletFormat.getPicture. اضبط BulletFormat.setType إلى BulletType.Picture قبل تعيين الصورة.
لنفترض أن لدينا ملف “image.png”:

الكود PHP التالي يوضح كيفية إنشاء علامات نقطية صورية في شريحة:
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();
}
}
النتيجة:

إنشاء قائمة متعددة المستويات
استخدم ParagraphFormat.setDepth لوضع عناصر القائمة على مستويات مختلفة. المستوى 0 هو المستوى الأعلى، المستوى 1 هو المستوى الفرعي تحته، وهكذا.
الكود PHP التالي يوضح كيفية إنشاء قائمة نقطية متعددة المستويات:
$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();
}
}
النتيجة:

تغيير قائمة موجودة
لتغيير تنسيق القائمة في عرض تقديمي موجود، وصول إلى الفقرة المستهدفة وقم بتحديث إعدادات ParagraphFormat.getBullet الخاصة بها. يمكن استخدام نفس الخصائص المستخدمة لإنشاء القوائم لفحص أو تعديل القوائم التي تم تحميلها من ملف PPT أو PPTX أو ODP.
الكود PHP التالي يغيّر الفقرة الأولى في إطار النص لاستخدام نمط قائمة مرقمة:
$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();
}
}
الأسئلة المتكررة
هل يمكن تصدير القوائم النقطية والمرقمة إلى PDF أو صور؟
نعم. يحتفظ Aspose.Slides بتنسيق القوائم عندما يدعم التنسيق المستهدف تخطيط النص وميزات العلامة النقطية المقابلة.
هل يمكن تعديل القوائم في العروض التقديمية الموجودة؟
نعم. حمّل العرض التقديمي، وصول إلى الفقرة المستهدفة، فحص أو تحديث إعدادات ParagraphFormat.getBullet الخاصة بها، ثم احفظ العرض التقديمي.
هل يمكن أن تحتوي القوائم على نص غير لاتيني؟
نعم. يمكن أن يحتوي نص عنصر القائمة على أحرف Unicode، وبالتالي يمكنك إنشاء قوائم في عروض تقديمية متعددة اللغات. تأكد من أن الخطوط المستخدمة في العرض تدعم الأحرف التي تحتاجها.