Quản lý SmartArt trong Bài thuyết trình PowerPoint bằng .NET
Tổng quan
SmartArt là một biểu đồ PowerPoint được tạo thành từ các nút, hình dạng nút và một bố cục. Với Aspose.Slides cho .NET, bạn có thể tạo SmartArt, đọc văn bản từ các nút của nó, thay đổi bố cục, kiểm tra các nút ẩn, cấu hình bố cục biểu đồ tổ chức và tạo biểu đồ tổ chức dạng hình ảnh.
Lấy văn bản từ đối tượng SmartArt
Một nút SmartArt có thể chứa một hoặc nhiều hình dạng. Để đọc văn bản hiển thị, lặp qua ISmartArt.AllNodes, sau đó đọc ITextFrame được trả về bởi 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);
}
}
}
}
}
Thay đổi kiểu bố cục của đối tượng SmartArt
Bố cục SmartArt điều khiển cách các nút được sắp xếp và kết nối. Ví dụ sau tạo một đối tượng SmartArt với giá trị SmartArtLayoutType BasicBlockList, thay đổi nó thành giá trị BasicProcess, và lưu bản trình bày.
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);
}
Kiểm tra xem nút SmartArt có bị ẩn hay không
ISmartArtNode.IsHidden cho biết liệu nút có bị ẩn trong mô hình dữ liệu SmartArt hay không. Các nút ẩn có thể tồn tại trong cấu trúc ngay cả khi bố cục đã chọn không hiển thị chúng như các phần tử biểu đồ nhìn thấy được.
Ví dụ sau thêm một nút vào đối tượng SmartArt sử dụng giá trị SmartArtLayoutType RadialCycle và kiểm tra trạng thái ẩn của nút.
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);
}
Lấy hoặc đặt bố cục biểu đồ tổ chức
Đối với các biểu đồ SmartArt sử dụng bố cục biểu đồ tổ chức, ISmartArtNode.OrganizationChartLayout định nghĩa cách các nút con được sắp xếp dưới một nút cha. Ví dụ, bạn có thể đặt các nút con treo từ phía trái, phải hoặc cả hai bên, tùy thuộc vào OrganizationChartLayoutType đã chọn.
Ví dụ sau tạo một biểu đồ tổ chức và đặt bố cục cho nút đầu tiên thành giá trị 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);
}
Tạo biểu đồ tổ chức dạng hình ảnh
Biểu đồ tổ chức dạng hình ảnh là một bố cục SmartArt được thiết kế cho các biểu đồ cấp bậc có chứa các chỗ giữ hình ảnh. Sử dụng giá trị SmartArtLayoutType PictureOrganizationChart khi thêm đối tượng SmartArt vào một 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);
}
Câu hỏi thường gặp
SmartArt có hỗ trợ phản chiếu hoặc đảo ngược cho các ngôn ngữ RTL không?
Có. Thuộc tính IsReversed chuyển hướng biểu đồ từ trái sang phải sang phải sang trái, hoặc ngược lại, khi bố cục SmartArt đã chọn hỗ trợ đảo ngược.
Làm thế nào tôi có thể sao chép SmartArt vào cùng một slide hoặc sang bản trình bày khác mà vẫn giữ định dạng?
Bạn có thể sao chép hình dạng SmartArt bằng ShapeCollection.AddClone hoặc sao chép toàn bộ slide chứa SmartArt. Cả hai cách đều giữ kích thước, vị trí và định dạng.
Làm thế nào tôi có thể render SmartArt thành hình ảnh raster để xem trước hoặc xuất ra web?
Bạn có thể render slide hoặc toàn bộ bản trình bày sang PNG hoặc JPEG. SmartArt được render như một phần của slide.
Làm sao tôi có thể tìm một đối tượng SmartArt cụ thể trên một slide nếu có nhiều?
Đặt giá trị AlternativeText hoặc Name trên hình dạng SmartArt, tìm giá trị đó trong Slide.Shapes, sau đó kiểm tra hình dạng khớp là một ISmartArt.