จัดการกราฟิก SmartArt ในการนำเสนอด้วย PHP

ภาพรวม

Aspose.Slides ช่วยให้คุณสร้างและจัดการกราฟิก SmartArt ในงานนำเสนอ PowerPoint ด้วยโปรแกรมเมติก. บทความนี้อธิบายวิธีเพิ่มรูปทรง SmartArt ลงในสไลด์, เข้าถึงรูปทรง SmartArt ที่มีอยู่, ค้นหา SmartArt ตามประเภท Layout ที่กำหนด, และปรับปรุงลักษณะการแสดงผลโดยการเปลี่ยนสไตล์หรือสีของ SmartArt.

ตัวอย่างแสดงวิธีทำงานกับรูปทรง SmartArt ผ่านคอลเลกชันรูปทรงของสไลด์งานนำเสนอ, ตรวจสอบว่ารูปทรงเป็น SmartArt หรือไม่ แล้วทำการแก้ไขหรือสอบถามคุณสมบัติต่าง ๆ ของมัน.

สร้างรูปทรง SmartArt

Aspose.Slides for PHP via Java มี API ที่จัดให้เพื่อสร้างรูปทรง SmartArt. เพื่อสร้างรูปทรง SmartArt บนสไลด์, โปรดทำตามขั้นตอนด้านล่าง:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับอ้างอิงของสไลด์โดยใช้ Index ของมัน
  3. เพิ่มรูปทรง SmartArt โดยกำหนด LayoutType
  4. บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ 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();
    }
  }
todo:image_alt_text
รูปภาพ: รูปทรง 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 ถูกเพิ่ม.

  1. สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอที่มีรูปทรง SmartArt
  2. รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
  3. วนผ่านทุกรูปทรงภายในสไลด์แรก
  4. ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่ และทำการแปลงประเภทของรูปทรงที่เลือกเป็น SmartArt หากเป็น SmartArt
  5. ตรวจสอบรูปทรง 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 ใด ๆ.

  1. สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอที่มีรูปทรง SmartArt
  2. รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
  3. วนผ่านทุกรูปทรงภายในสไลด์แรก
  4. ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่ และทำการแปลงประเภทของรูปทรงที่เลือกเป็น SmartArt หากเป็น SmartArt
  5. ค้นหารูปทรง SmartArt ด้วย Style เฉพาะ
  6. ตั้งค่า Style ใหม่ให้กับรูปทรง SmartArt
  7. บันทึกงานนำเสนอ
  # สร้างอินสแตนซ์ของคลาส 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();
  }
todo:image_alt_text
รูปภาพ: รูปทรง SmartArt ที่สไตล์ถูกเปลี่ยน

เปลี่ยนสไตล์สีของรูปทรง SmartArt

ในตัวอย่างนี้ เราจะเรียนรู้การเปลี่ยนสไตล์สีสำหรับรูปทรง SmartArt ใด ๆ. ในตัวอย่างโค้ดต่อไปนี้จะเข้าถึงรูปทรง SmartArt ด้วยสไตล์สีเฉพาะและจะเปลี่ยนสไตล์ของมัน.

  1. สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอที่มีรูปทรง SmartArt
  2. รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
  3. วนผ่านทุกรูปทรงภายในสไลด์แรก
  4. ตรวจสอบว่ารูปทรงเป็นประเภท SmartArt หรือไม่ และทำการแปลงประเภทของรูปทรงที่เลือกเป็น SmartArt หากเป็น SmartArt
  5. ค้นหารรูปทรง SmartArt ด้วย Color Style เฉพาะ
  6. ตั้งค่า Color Style ใหม่ให้กับรูปทรง SmartArt
  7. บันทึกงานนำเสนอ
  # สร้างอินสแตนซ์ของคลาส 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();
  }
todo:image_alt_text
รูปภาพ: รูปทรง 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, พร้อมช่วงของตัวเลือกคุณภาพและความเข้ากันได้.