จัดการกราฟิก SmartArt ในการนำเสนอด้วย PHP
ภาพรวม
Aspose.Slides ช่วยให้คุณสร้างและจัดการกราฟิก SmartArt ในงานนำเสนอ PowerPoint ด้วยโปรแกรมเมติก. บทความนี้อธิบายวิธีเพิ่มรูปทรง SmartArt ลงในสไลด์, เข้าถึงรูปทรง SmartArt ที่มีอยู่, ค้นหา SmartArt ตามประเภท Layout ที่กำหนด, และปรับปรุงลักษณะการแสดงผลโดยการเปลี่ยนสไตล์หรือสีของ SmartArt.
ตัวอย่างแสดงวิธีทำงานกับรูปทรง SmartArt ผ่านคอลเลกชันรูปทรงของสไลด์งานนำเสนอ, ตรวจสอบว่ารูปทรงเป็น SmartArt หรือไม่ แล้วทำการแก้ไขหรือสอบถามคุณสมบัติต่าง ๆ ของมัน.
สร้างรูปทรง SmartArt
Aspose.Slides for PHP via Java มี API ที่จัดให้เพื่อสร้างรูปทรง SmartArt. เพื่อสร้างรูปทรง SmartArt บนสไลด์, โปรดทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงของสไลด์โดยใช้ Index ของมัน
- เพิ่มรูปทรง SmartArt โดยกำหนด LayoutType
- บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
# สร้างอินสแตนซ์ของคลาส Presentation
$pres = new Presentation();
try {
# ดึงสไลด์แรก
$slide = $pres->getSlides()->get_Item(0);
# เพิ่มรูปทรง Smart Art
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# บันทึกการนำเสนอ
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
![]() |
|---|
| รูปภาพ: รูปทรง SmartArt ที่เพิ่มในสไลด์ |
เข้าถึงรูปทรง SmartArt บนสไลด์
โค้ดต่อไปนี้จะใช้เพื่อเข้าถึงรูปทรง SmartArt ที่เพิ่มในสไลด์งานนำเสนอ. ในตัวอย่างโค้ด เราจะวนผ่านทุกรูปทรงภายในสไลด์และตรวจสอบว่ามันเป็นรูปทรง SmartArt หรือไม่. หากรูปทรงเป็นประเภท SmartArt เราจะทำการแปลงประเภทเป็นอินสแตนซ์ของ SmartArt.
# โหลดงานนำเสนอที่ต้องการ
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# วนผ่านทุกรูปทรงภายในสไลด์แรก
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# แปลงประเภทรูปทรงเป็น SmartArtEx
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
เข้าถึงรูปทรง SmartArt ด้วย Layout Type เฉพาะ
ตัวอย่างโค้ดต่อไปนี้จะช่วยให้เข้าถึงรูปทรง SmartArt ด้วย LayoutType เฉพาะ: โปรดทราบว่าคุณไม่สามารถเปลี่ยน LayoutType ของ SmartArt ได้ เนื่องจากเป็นค่าอ่านอย่างเดียวและจะถูกตั้งค่าเฉพาะเมื่อรูปทรง SmartArt ถูกเพิ่ม.
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอที่มีรูปทรง SmartArt
- รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
- วนผ่านทุกรูปทรงภายในสไลด์แรก
- ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่ และทำการแปลงประเภทของรูปทรงที่เลือกเป็น SmartArt หากเป็น SmartArt
- ตรวจสอบรูปทรง SmartArt ด้วย LayoutType เฉพาะและดำเนินการตามที่ต้องการต่อไป
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# วนผ่านทุกรูปทรงภายในสไลด์แรก
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# แปลงประเภทของรูปทรงเป็น SmartArtEx
$smart = $shape;
# ตรวจสอบ Layout ของ SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
เปลี่ยนสไตล์ของรูปทรง SmartArt
ในตัวอย่างนี้ เราจะเรียนรู้การเปลี่ยนสไตล์เร็วสำหรับรูปทรง SmartArt ใด ๆ.
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอที่มีรูปทรง SmartArt
- รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
- วนผ่านทุกรูปทรงภายในสไลด์แรก
- ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่ และทำการแปลงประเภทของรูปทรงที่เลือกเป็น SmartArt หากเป็น SmartArt
- ค้นหารูปทรง SmartArt ด้วย Style เฉพาะ
- ตั้งค่า Style ใหม่ให้กับรูปทรง SmartArt
- บันทึกงานนำเสนอ
# สร้างอินสแตนซ์ของคลาส Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# ดึงสไลด์แรก
$slide = $pres->getSlides()->get_Item(0);
# วนผ่านทุกรูปทรงภายในสไลด์แรก
foreach($slide->getShapes() as $shape) {
# ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# แปลงประเภทของรูปทรงเป็น SmartArtEx
$smart = $shape;
# ตรวจสอบสไตล์ของ SmartArt
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# เปลี่ยนสไตล์ของ SmartArt
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# บันทึกการนำเสนอ
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| รูปภาพ: รูปทรง SmartArt ที่สไตล์ถูกเปลี่ยน |
เปลี่ยนสไตล์สีของรูปทรง SmartArt
ในตัวอย่างนี้ เราจะเรียนรู้การเปลี่ยนสไตล์สีสำหรับรูปทรง SmartArt ใด ๆ. ในตัวอย่างโค้ดต่อไปนี้จะเข้าถึงรูปทรง SmartArt ด้วยสไตล์สีเฉพาะและจะเปลี่ยนสไตล์ของมัน.
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอที่มีรูปทรง SmartArt
- รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
- วนผ่านทุกรูปทรงภายในสไลด์แรก
- ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่ และทำการแปลงประเภทของรูปทรงที่เลือกเป็น SmartArt หากเป็น SmartArt
- ค้นหารรูปทรง SmartArt ด้วย Color Style เฉพาะ
- ตั้งค่า Color Style ใหม่ให้กับรูปทรง SmartArt
- บันทึกงานนำเสนอ
# สร้างอินสแตนซ์ของคลาส Presentation
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# ดึงสไลด์แรก
$slide = $pres->getSlides()->get_Item(0);
# วนผ่านทุกรูปทรงภายในสไลด์แรก
foreach($slide->getShapes() as $shape) {
# ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# แปลงประเภทของรูปทรงเป็น SmartArtEx
$smart = $shape;
# ตรวจสอบประเภทสีของ SmartArt
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# เปลี่ยนประเภทสีของ SmartArt
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# บันทึกการนำเสนอ
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| รูปภาพ: รูปทรง SmartArt ที่สไตล์สีถูกเปลี่ยน |
คำถามที่พบบ่อย
ฉันสามารถทำให้ SmartArt เคลื่อนที่เป็นวัตถุเดียวได้หรือไม่?
ใช่. SmartArt เป็นรูปทรง ดังนั้นคุณสามารถใช้ standard animations ผ่าน API ของการเคลื่อนไหว (การเข้ามา, การออก, การเน้น, เส้นทางการเคลื่อนที่) เช่นเดียวกับรูปทรงอื่น ๆ.
ฉันจะค้นหา SmartArt เฉพาะบนสไลด์ได้อย่างไรหากไม่รู้ ID ภายในของมัน?
ตั้งค่าและใช้ Alternative Text (AltText) แล้วค้นหารูปทรงด้วยค่าดังกล่าว — วิธีนี้เป็นวิธีที่แนะนำให้ค้นหารูปทรงเป้าหมาย.
ฉันสามารถกลุ่ม SmartArt กับรูปทรงอื่น ๆ ได้หรือไม่?
ใช่. คุณสามารถกลุ่ม SmartArt กับรูปทรงอื่น ๆ (รูปภาพ, ตาราง, ฯลฯ) แล้ว manipulate the group.
ฉันจะได้ภาพของ SmartArt เฉพาะ (เช่นสำหรับตัวอย่างหรือรายงาน) อย่างไร?
ส่งออก thumbnail/รูปภาพของรูปทรง; ไลบรารีสามารถ render individual shapes ไปเป็นไฟล์ raster (PNG/JPG/TIFF).
ลักษณะของ SmartArt จะคงเดิมเมื่อต้องแปลงงานนำเสนอทั้งหมดเป็น PDF หรือไม่?
ใช่. เครื่องมือเรนเดอร์มุ่งเน้นความเที่ยงตรงสูงสำหรับ PDF export, พร้อมช่วงของตัวเลือกคุณภาพและความเข้ากันได้.

