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

ภาพรวม

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

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

สร้างรูป SmartArt

Aspose.Slides for .NET ตอนนี้อำนวยความสะดวกในการเพิ่มรูป SmartArt ที่กำหนดเองลงในสไลด์ตั้งแต่ต้น Aspose.Slides for .NET ได้ให้ API ที่ง่ายที่สุดสำหรับสร้างรูป SmartArt อย่างง่ายดาย เพื่อสร้างรูป SmartArt ในสไลด์, โปรดทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของคลาส Presentation
  • รับอ้างอิงของสไลด์โดยใช้ Index ของมัน
  • เพิ่มรูป SmartArt โดยตั้งค่า LayoutType
  • บันทึกการนำเสนอที่แก้ไขเป็นไฟล์ PPTX
// สร้างอินสแตนซ์ของการนำเสนอ
using (Presentation pres = new Presentation())
{

    // เข้าถึงสไลด์ของการนำเสนอ
    ISlide slide = pres.Slides[0];

    // เพิ่มรูปร่าง Smart Art
    ISmartArt smart = slide.Shapes.AddSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);

    // บันทึกการนำเสนอ
    pres.Save("SimpleSmartArt_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

เข้าถึงรูป SmartArt บนสไลด์

โค้ดต่อไปนี้จะใช้เพื่อเข้าถึงรูป SmartArt ที่เพิ่มในสไลด์ของการนำเสนอ ในโค้ดตัวอย่างเราจะวนผ่านทุกรูปร่างภายในสไลด์และตรวจสอบว่ามันเป็นรูป SmartArt หรือไม่ หากรูปร่างเป็นประเภท SmartArt เราจะทำการแปลงเป็นอินสแตนซ์ SmartArt

// โหลดการนำเสนอที่ต้องการ
using (Presentation pres = new Presentation("AccessSmartArtShape.pptx"))
{

    // วนผ่านทุกรูปร่างภายในสไลด์แรก
    foreach (IShape shape in pres.Slides[0].Shapes)
    {
        // ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่
        if (shape is ISmartArt)
        {
            // แปลงรูปแบบของรูปร่างเป็น SmartArtEx
            ISmartArt smart = (ISmartArt)shape;
            System.Console.WriteLine("Shape Name:" + smart.Name);

        }
    }
}

เข้าถึงรูป SmartArt ด้วย Layout Type เฉพาะ

โค้ดตัวอย่างต่อไปนี้จะช่วยให้เข้าถึงรูป SmartArt ที่มี LayoutType เฉพาะ โปรดทราบว่าคุณไม่สามารถเปลี่ยน LayoutType ของ SmartArt ได้ เนื่องจากเป็นค่าอ่านอย่างเดียวและจะตั้งค่าเมื่อตัวรูป SmartArt ถูกเพิ่ม

  • สร้างอินสแตนซ์ของคลาส Presentation และโหลดการนำเสนอที่มีรูป SmartArt อยู่
  • รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
  • วนผ่านทุกรูปร่างในสไลด์แรก
  • ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่และแปลงรูปร่างที่เลือกเป็น SmartArt หากเป็น SmartArt
  • ตรวจสอบรูป SmartArt ที่มี LayoutType เฉพาะและดำเนินการตามที่ต้องการต่อไป
using (Presentation presentation = new Presentation("AccessSmartArtShape.pptx"))
{
    // วนผ่านทุกรูปร่างภายในสไลด์แรก
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        // ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่
        if (shape is ISmartArt)
        {
            // แปลงรูปร่างเป็น SmartArtEx
            ISmartArt smart = (ISmartArt) shape;

            // ตรวจสอบเค้าโครง SmartArt
            if (smart.Layout == SmartArtLayoutType.BasicBlockList)
            {
                Console.WriteLine("Do some thing here....");
            }
        }
    }
}

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

โค้ดตัวอย่างต่อไปนี้จะช่วยให้เข้าถึงรูป SmartArt ที่มี LayoutType เฉพาะ

  • สร้างอินสแตนซ์ของคลาส Presentation และโหลดการนำเสนอที่มีรูป SmartArt อยู่
  • รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
  • วนผ่านทุกรูปร่างในสไลด์แรก
  • ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่และแปลงรูปร่างที่เลือกเป็น SmartArt หากเป็น SmartArt
  • ค้นหารูป SmartArt ที่มี Style เฉพาะ
  • ตั้งค่า Style ใหม่ให้กับรูป SmartArt
  • บันทึกการนำเสนอ
using (Presentation presentation = new Presentation("AccessSmartArtShape.pptx"))
{
    // วนผ่านทุกรูปร่างภายในสไลด์แรก
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        // ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่
        if (shape is ISmartArt)
        {
            // แปลงรูปร่างเป็น SmartArtEx
            ISmartArt smart = (ISmartArt)shape;

            // ตรวจสอบสไตล์ SmartArt
            if (smart.QuickStyle == SmartArtQuickStyleType.SimpleFill)
            {
                // เปลี่ยนสไตล์ SmartArt
                smart.QuickStyle = SmartArtQuickStyleType.Cartoon;
            }
        }
    }

    // บันทึกการนำเสนอ
    presentation.Save("ChangeSmartArtStyle_out.pptx", SaveFormat.Pptx);
}

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

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

  • สร้างอินสแตนซ์ของคลาส Presentation และโหลดการนำเสนอที่มีรูป SmartArt อยู่
  • รับอ้างอิงของสไลด์แรกโดยใช้ Index ของมัน
  • วนผ่านทุกรูปร่างในสไลด์แรก
  • ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่และแปลงรูปร่างที่เลือกเป็น SmartArt หากเป็น SmartArt
  • ค้นหารูป SmartArt ที่มี Color Style เฉพาะ
  • ตั้งค่า Color Style ใหม่ให้กับรูป SmartArt
  • บันทึกการนำเสนอ
using (Presentation presentation = new Presentation("AccessSmartArtShape.pptx"))
{
    // วนผ่านทุกรูปร่างภายในสไลด์แรก
    foreach (IShape shape in presentation.Slides[0].Shapes)
    {
        // ตรวจสอบว่ารูปร่างเป็นประเภท SmartArt หรือไม่
        if (shape is ISmartArt)
        {
            // แปลงรูปร่างเป็น SmartArtEx
            ISmartArt smart = (ISmartArt)shape;

            // ตรวจสอบประเภทสีของ SmartArt
            if (smart.ColorStyle == SmartArtColorType.ColoredFillAccent1)
            {
                // เปลี่ยนประเภทสีของ SmartArt
                smart.ColorStyle = SmartArtColorType.ColorfulAccentColors;
            }
        }
    }

    // บันทึกการนำเสนอ
    presentation.Save("ChangeSmartArtColorStyle_out.pptx", SaveFormat.Pptx);
}

คำถามที่พบบ่อย

ฉันสามารถทำแอนิเมชัน SmartArt เป็นวัตถุเดียวได้หรือไม่?

ใช่. SmartArt เป็นรูปร่าง, ดังนั้นคุณสามารถใช้ standard animations ผ่าน API แอนิเมชัน (การเข้ามา, การออก, การเน้น, เส้นทางการเคลื่อนที่) เช่นเดียวกับรูปร่างอื่น ๆ

ฉันจะค้นหา SmartArt ที่เฉพาะเจาะจงบนสไลด์ได้อย่างไรถ้าฉันไม่ทราบ ID ภายในของมัน?

ตั้งค่าและใช้ Alternative Text (AltText) แล้วค้นหารูปร่างโดยค่านั้น—นี่เป็นวิธีที่แนะนำในการค้นหารูปร่างเป้าหมาย

ฉันสามารถจัดกลุ่ม SmartArt กับรูปร่างอื่นได้หรือไม่?

ใช่. คุณสามารถจัดกลุ่ม SmartArt กับรูปร่างอื่น (รูปภาพ, ตาราง, ฯลฯ) แล้ว manipulate the group

ฉันจะได้รับภาพของ SmartArt เฉพาะได้อย่างไร (เช่น สำหรับการแสดงตัวอย่างหรือรายงาน)?

ส่งออกภาพย่อ/รูปภาพของรูปร่าง; ไลบรารีสามารถ render individual shapes เป็นไฟล์ราสเตอร์ (PNG/JPG/TIFF)

ลักษณะของ SmartArt จะยังคงเหมือนเดิมเมื่อตั้งค่าแปลงการนำเสนอทั้งหมดเป็น PDF หรือไม่?

ใช่. กลไกการเรนเดอร์มุ่งเน้นความแม่นยำสูงสำหรับ PDF export, พร้อมตัวเลือกคุณภาพและความเข้ากันได้หลายระดับ