مدیریت گرافیکهای SmartArt در ارائهها با استفاده از PHP
بررسی کلی
Aspose.Slides به شما امکان میدهد گرافیکهای SmartArt را بهصورت برنامهنویسی در ارائههای PowerPoint ایجاد و مدیریت کنید. این مقاله توضیح میدهد چگونه یک شکل SmartArt به اسلاید اضافه کنید، به شکلهای SmartArt موجود دسترسی پیدا کنید، SmartArt را با نوع چیدمان خاصی پیدا کنید و ظاهر آن را با تغییر سبک SmartArt یا سبک رنگی بهروز کنید.
نمونهها نشان میدهند چگونه با شکلهای SmartArt از طریق مجموعه اشکال اسلاید ارائه کار کنید، بررسی کنید آیا یک شکل SmartArt است و سپس ویژگیهای آن را تغییر یا بررسی کنید.
ایجاد یک شکل SmartArt
Aspose.Slides for PHP via Java یک API برای ایجاد شکلهای SmartArt فراهم کرده است. برای ایجاد یک شکل SmartArt در اسلاید، لطفاً مراحل زیر را دنبال کنید:
- یک نمونه از کلاس Presentation ایجاد کنید.
- با استفاده از Index آن، مرجع یک اسلاید را دریافت کنید.
- با تنظیم LayoutType یک اضافه کردن یک شکل SmartArt اضافه کنید.
- ارائه اصلاحشده را بهعنوان فایل 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();
}
}
![]() |
|---|
| تصویر: شکل 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 با نوع چیدمان خاص
کد نمونه زیر به شما کمک میکند تا به شکل SmartArt با LayoutType خاص دسترسی پیدا کنید. لطفاً توجه داشته باشید که نمیتوانید LayoutType را تغییر دهید زیرا فقط برای خواندن است و تنها هنگام اضافه شدن شکل SmartArt تنظیم میشود.
- یک نمونه از کلاس Presentation ایجاد کنید و ارائهای را که شامل شکل SmartArt است بارگذاری کنید.
- با استفاده از Index آن، مرجع اولین اسلاید را دریافت کنید.
- از همه اشکال داخل اولین اسلاید عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و اگر بود، آن را به SmartArt تبدیل کنید.
- شکل 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;
# بررسی چیدمان SmartArt
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
تغییر سبک شکل SmartArt
در این مثال، میآموزیم چگونه سبک سریع یک شکل SmartArt را تغییر دهیم.
- یک نمونه از کلاس Presentation ایجاد کنید و ارائهای را که شامل شکل SmartArt است بارگذاری کنید.
- با استفاده از Index آن، مرجع اولین اسلاید را دریافت کنید.
- از همه اشکال داخل اولین اسلاید عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و اگر بود، آن را به SmartArt تبدیل کنید.
- شکل SmartArt را با سبک خاص پیدا کنید.
- سبک جدید را برای شکل SmartArt تنظیم کنید.
- ارائه را ذخیره کنید.
# ایجاد نمونه از کلاس 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();
}
![]() |
|---|
| تصویر: شکل SmartArt با سبک تغییر یافته |
تغییر سبک رنگی شکل SmartArt
در این مثال، میآموزیم چگونه سبک رنگی یک شکل SmartArt را تغییر دهیم. در کد نمونه زیر به شکل SmartArt با سبک رنگی خاص دسترسی پیدا میکنیم و سبک آن را تغییر میدهیم.
- یک نمونه از کلاس Presentation ایجاد کنید و ارائهای را که شامل شکل SmartArt است بارگذاری کنید.
- با استفاده از Index آن، مرجع اولین اسلاید را دریافت کنید.
- از همه اشکال داخل اولین اسلاید عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و اگر بود، آن را به SmartArt تبدیل کنید.
- شکل SmartArt را با سبک رنگی خاص پیدا کنید.
- سبک رنگی جدید را برای شکل SmartArt تنظیم کنید.
- ارائه را ذخیره کنید.
# ایجاد نمونه از کلاس 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();
}
![]() |
|---|
| تصویر: شکل SmartArt با سبک رنگی تغییر یافته |
پرسشهای متداول
آیا میتوانم SmartArt را بهعنوان یک شیء واحد انیمیشن کنم؟
بله. SmartArt یک شکل است، بنابراین میتوانید همانند سایر اشکال، از طریق API انیمیشنها انیمیشنهای استاندارد (ورودی، خروجی، تأکید، مسیرهای حرکتی) را اعمال کنید.
چگونه میتوانم یک SmartArt خاص را روی اسلاید پیدا کنم اگر شناسه داخلی آن را ندانم؟
متن جایگزین (AltText) را تنظیم و استفاده کنید و با جستجوی شکل بر اساس آن مقدار، شکل هدف را پیدا کنید—این روش توصیهشده برای مکانیابی شکل است.
آیا میتوانم SmartArt را با سایر اشکال گروهبندی کنم؟
بله. میتوانید SmartArt را با سایر اشکال (تصاویر، جداول و غیره) گروهبندی کنید و سپس گروه را دستکاری کنید.
چگونه میتوانم تصویر یک SmartArt خاص را دریافت کنم (مثلاً برای پیشنمایش یا گزارش)؟
یک تصویر کوچک/عکس از شکل را صادر کنید؛ کتابخانه میتواند اشکال منفرد را به فایلهای رستر (PNG/JPG/TIFF) رندر کند.
آیا ظاهر SmartArt هنگام تبدیل کل ارائه به PDF حفظ میشود؟
بله. موتور رندر هدف خود را حفظ بالای دقت برای صادرات PDF قرار داده است، همراه با مجموعهای از گزینههای کیفیت و سازگاری.

