مدیریت SmartArt در ارائه‌های PowerPoint در Android

نمای کلی

SmartArt یک نمودار PowerPoint است که از گره‌ها، اشکال گره و یک طرح‌بندی ساخته شده است. با Aspose.Slides برای Android از طریق Java، می‌توانید SmartArt ایجاد کنید، متن را از گره‌های آن بخوانید، طرح‌بندی آن را تغییر دهید، گره‌های مخفی را بررسی کنید، طرح‌بندی‌های نمودار سازمانی را پیکربندی کنید و نمودارهای سازمانی تصویری ایجاد کنید.

دریافت متن از یک شیء SmartArt

یک گره SmartArt می‌تواند یک یا چند شکل را در بر داشته باشد. برای خواندن متن قابل مشاهده، از طریق ISmartArt.getAllNodes پیمایش کنید، سپس ITextFrame بازگردانده‌شده توسط ISmartArtShape.getTextFrame را بخوانید.

Presentation presentation = new Presentation("sample.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IShape shape = slide.getShapes().get_Item(0);

    if (shape instanceof ISmartArt) {
        ISmartArt smartArt = (ISmartArt) shape;

        for (ISmartArtNode node : smartArt.getAllNodes()) {
            for (ISmartArtShape nodeShape : node.getShapes()) {
                if (nodeShape.getTextFrame() != null) {
                    System.out.println(nodeShape.getTextFrame().getText());
                }
            }
        }
    }
} finally {
    presentation.dispose();
}

تغییر نوع طرح‌بندی یک شیء SmartArt

طرح‌بندی SmartArt تعیین می‌کند گره‌ها چگونه چیده و به یکدیگر متصل می‌شوند. مثال زیر یک شیء SmartArt را با مقدار BasicBlockList از نوع SmartArtLayoutType ایجاد می‌کند، آن را به مقدار BasicProcess تغییر می‌دهد و ارائه را ذخیره می‌کند.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);

    smartArt.setLayout(SmartArtLayoutType.BasicProcess);

    presentation.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

بررسی اینکه آیا یک گره SmartArt مخفی است یا خیر

ISmartArtNode.isHidden نشان می‌دهد آیا گره در مدل داده‌ای SmartArt مخفی است یا خیر. گره‌های مخفی می‌توانند در ساختار وجود داشته باشند حتی زمانی که طرح‌بندی انتخاب‌شده آن‌ها را به‌عنوان عناصر نموداری قابل مشاهده نمایش نمی‌دهد.

مثال زیر یک گره به شیء SmartArt که از مقدار RadialCycle از نوع SmartArtLayoutType استفاده می‌کند اضافه می‌کند و وضعیت مخفی بودن گره را بررسی می‌کند.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType.RadialCycle);

    ISmartArtNode node = smartArt.getAllNodes().addNode();
    boolean isHidden = node.isHidden();

    if (isHidden) {
        System.out.println("The node is hidden in the SmartArt data model.");
    }

    presentation.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

دریافت یا تنظیم طرح‌بندی نمودار سازمانی

برای نمودارهای SmartArt که از طرح‌بندی نمودار سازمانی استفاده می‌کنند، متدهای ISmartArtNode.getOrganizationChartLayout و ISmartArtNode.setOrganizationChartLayout تعیین می‌کنند گره‌های فرزند زیر یک گره والد چگونه چیده شوند. به‌عنوان مثال، می‌توانید گره‌های فرزند را طوری تنظیم کنید که از سمت چپ، راست یا هر دو طرف آویزان شوند، بسته به OrganizationChartLayoutType انتخاب‌شده.

مثال زیر یک نمودار سازمانی ایجاد می‌کند و برای اولین گره، طرح‌بندی را به مقدار LeftHanging از نوع OrganizationChartLayoutType تنظیم می‌نماید.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);

    ISmartArtNode rootNode = smartArt.getNodes().get_Item(0);
    rootNode.setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);

    presentation.save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

ایجاد نمودار سازمانی تصویری

نمودار سازمانی تصویری یک طرح‌بندی SmartArt است که برای نمودارهای سلسله‌مراتبی شامل محل‌های قرارگیری تصویر طراحی شده است. هنگام افزودن شیء SmartArt به یک اسلاید، از مقدار PictureOrganizationChart از نوع SmartArtLayoutType استفاده کنید.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);

    presentation.save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

سوالات متداول

آیا SmartArt از انعکاس یا معکوس کردن برای زبان‌های راست به چپ پشتیبانی می‌کند؟

بله. متد ISmartArt.setReversed جهت نمودار را از چپ به راست به راست به چپ، یا برعکس، تغییر می‌دهد هنگامی که طرح‌بندی SmartArt انتخاب‌شده از معکوس شدن پشتیبانی می‌کند.

چگونه می‌توانم SmartArt را در همان اسلاید یا در ارائه دیگر کپی کنم در حالی که قالب‌بندی حفظ می‌شود؟

می‌توانید با استفاده از ShapeCollection.addClone، کپی شکل SmartArt کنید یا با استفاده از کپی کل اسلاید کل اسلاید حاوی SmartArt را کپی کنید. هر دو روش اندازه، موقعیت و قالب‌بندی را حفظ می‌کنند.

چگونه می‌توانم SmartArt را به یک تصویر رستر برای پیش‌نمایش یا خروجی وب رندر کنم؟

رندر اسلاید یا کل ارائه به فرمت PNG یا JPEG. SmartArt به‌عنوان بخشی از اسلاید رندر می‌شود.

چگونه می‌توانم یک شیء SmartArt خاص را در یک اسلاید پیدا کنم اگر چندین شیء وجود داشته باشد؟

یک مقدار متمایز برای Shape.getAlternativeText یا Shape.getName بر روی شکل SmartArt تنظیم کنید، سپس آن مقدار را در BaseSlide.getShapes جستجو کنید و بررسی کنید که شکل یافت‌شده یک ISmartArt باشد.