Kelola SmartArt dalam Presentasi PowerPoint di .NET
Gambaran Umum
SmartArt adalah diagram PowerPoint yang dibuat dari node, bentuk node, dan tata letak. Dengan Aspose.Slides untuk .NET, Anda dapat membuat SmartArt, membaca teks dari node-nya, mengubah tata letaknya, memeriksa node tersembunyi, mengonfigurasi tata letak bagan organisasi, dan membuat bagan organisasi berbasis gambar.
Dapatkan Teks dari Objek SmartArt
Sebuah node SmartArt dapat berisi satu atau beberapa bentuk. Untuk membaca teks yang terlihat, iterasi melalui ISmartArt.AllNodes, lalu baca ITextFrame yang dikembalikan oleh ISmartArtShape.TextFrame.
using (Presentation presentation = new Presentation("sample.pptx"))
{
ISlide slide = presentation.Slides[0];
if (slide.Shapes[0] is ISmartArt smartArt)
{
foreach (ISmartArtNode node in smartArt.AllNodes)
{
foreach (ISmartArtShape nodeShape in node.Shapes)
{
if (nodeShape.TextFrame != null)
{
Console.WriteLine(nodeShape.TextFrame.Text);
}
}
}
}
}
Ubah Tipe Tata Letak Objek SmartArt
Tata letak SmartArt mengontrol cara node disusun dan dihubungkan. Contoh berikut membuat objek SmartArt dengan nilai SmartArtLayoutType BasicBlockList, mengubahnya menjadi nilai BasicProcess, dan menyimpan presentasi.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);
smartArt.Layout = SmartArtLayoutType.BasicProcess;
presentation.Save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
}
Periksa Apakah Node SmartArt Tersembunyi
ISmartArtNode.IsHidden menunjukkan apakah node tersembunyi dalam model data SmartArt. Node tersembunyi dapat ada dalam struktur meskipun tata letak yang dipilih tidak menampilkannya sebagai elemen diagram yang terlihat.
Contoh berikut menambahkan node ke objek SmartArt yang menggunakan nilai SmartArtLayoutType RadialCycle dan memeriksa status tersembunyi node tersebut.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
10, 10, 400, 300, SmartArtLayoutType.RadialCycle);
ISmartArtNode node = smartArt.AllNodes.AddNode();
bool isHidden = node.IsHidden;
if (isHidden)
{
Console.WriteLine("The node is hidden in the SmartArt data model.");
}
presentation.Save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
}
Dapatkan atau Atur Tata Letak Bagan Organisasi
Untuk diagram SmartArt yang menggunakan tata letak bagan organisasi, ISmartArtNode.OrganizationChartLayout menentukan bagaimana node anak disusun di bawah node induk. Misalnya, Anda dapat mengatur node anak menggantung dari kiri, kanan, atau kedua sisi, tergantung pada OrganizationChartLayoutType yang dipilih.
Contoh berikut membuat bagan organisasi dan mengatur tata letak untuk node pertama menjadi nilai OrganizationChartLayoutType LeftHanging.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);
ISmartArtNode rootNode = smartArt.Nodes[0];
rootNode.OrganizationChartLayout = OrganizationChartLayoutType.LeftHanging;
presentation.Save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx);
}
Buat Bagan Organisasi Gambar
Bagan organisasi gambar adalah tata letak SmartArt yang dirancang untuk diagram hierarki yang menyertakan placeholder gambar. Gunakan nilai SmartArtLayoutType PictureOrganizationChart saat menambahkan objek SmartArt ke slide.
using (Presentation presentation = new Presentation())
{
ISmartArt smartArt = presentation.Slides[0].Shapes.AddSmartArt(
0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
presentation.Save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx);
}
FAQ
Apakah SmartArt mendukung pencerminan atau pembalikan untuk bahasa RTL?
Ya. Properti IsReversed mengubah arah diagram dari kiri-ke-kanan menjadi kanan-ke-kiri, atau sebaliknya, ketika tata letak SmartArt yang dipilih mendukung pembalikan.
Bagaimana cara menyalin SmartArt ke slide yang sama atau ke presentasi lain sambil mempertahankan format?
Anda dapat mengklon bentuk SmartArt dengan ShapeCollection.AddClone atau mengklon seluruh slide yang berisi SmartArt. Kedua pendekatan mempertahankan ukuran, posisi, dan format.
Bagaimana cara merender SmartArt ke gambar raster untuk pratinjau atau ekspor web?
Render slide atau seluruh presentasi ke PNG atau JPEG. SmartArt dirender sebagai bagian dari slide.
Bagaimana saya dapat menemukan objek SmartArt tertentu pada slide jika ada beberapa?
Tetapkan nilai AlternativeText atau Name yang khas pada bentuk SmartArt, cari nilai tersebut di Slide.Shapes, lalu periksa bahwa bentuk yang cocok adalah sebuah ISmartArt.