إنشاء أو إدارة عقدة شكل SmartArt في PowerPoint باستخدام JavaScript
إضافة عقدة SmartArt في عرض PowerPoint باستخدام JavaScript
Aspose.Slides for Node.js via Java يوفر أبسط واجهة برمجة تطبيقات لإدارة أشكال SmartArt بطريقة سهلة. سيساعدك الكود النموذجي أدناه على إضافة عقدة وعقدة فرعية داخل شكل SmartArt.
- إنشاء كائن من الفئة Presentation وتحميل العرض مع شكل SmartArt.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- التنقل عبر كل شكل داخل الشريحة الأولى.
- التحقق مما إذا كان الشكل من نوع SmartArt وتحويل النوع المحدد إلى SmartArt إذا كان SmartArt.
- إضافة عقدة جديدة في شكل SmartArt NodeCollection وتعيين النص في TextFrame.
- الآن، إضافة Child Node في العقدة التي تم إضافتها حديثًا SmartArt وتعيين النص في TextFrame.
- حفظ العرض.
// تحميل العرض المطلوب
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// الانتقال عبر كل شكل داخل الشريحة الأولى
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// التحقق مما إذا كان الشكل من نوع SmartArt
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// تحويل نوع الشكل إلى SmartArt
var smart = shape;
// إضافة عقدة SmartArt جديدة
var TemNode = smart.getAllNodes().addNode();
// إضافة نص
TemNode.getTextFrame().setText("Test");
// إضافة عقدة فرعية جديدة في العقدة الأصلية. سيتم إضافتها في نهاية المجموعة
var newNode = TemNode.getChildNodes().addNode();
// إضافة نص
newNode.getTextFrame().setText("New Node Added");
}
}
// حفظ العرض
pres.save("AddSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
إضافة عقدة SmartArt في موضع محدد
في الكود النموذجي التالي شرحنا كيفية إضافة العقد الفرعية التابعة للعقد المناسبة في شكل SmartArt في موضع معين.
- إنشاء كائن من فئة Presentation.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- إضافة شكل StackedList من نوع SmartArt في الشريحة التي تم الوصول إليها.
- الوصول إلى العقدة الأولى في شكل SmartArt المضاف.
- الآن، إضافة Child Node للعقدة Node المحددة في الموضع 2 وتعيين نصها.
- حفظ العرض.
// إنشاء نسخة من العرض
var pres = new aspose.slides.Presentation();
try {
// الوصول إلى شريحة العرض
var slide = pres.getSlides().get_Item(0);
// إضافة Smart Art IShape
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// الوصول إلى عقدة SmartArt في الفهرس 0
var node = smart.getAllNodes().get_Item(0);
// إضافة عقدة فرعية جديدة في الموضع 2 داخل العقدة الأصلية
var chNode = node.getChildNodes().addNodeByPosition(2);
// إضافة نص
chNode.getTextFrame().setText("Sample Text Added");
// حفظ العرض
pres.save("AddSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
الوصول إلى عقدة SmartArt في عرض PowerPoint باستخدام JavaScript
الكود النموذجي التالي سيساعد على الوصول إلى العقد داخل شكل SmartArt. يرجى ملاحظة أنه لا يمكنك تغيير LayoutType الخاص بـ SmartArt لأنه للقراءة فقط ويُحدد فقط عند إضافة شكل SmartArt.
- إنشاء كائن من فئة Presentation وتحميل العرض مع شكل SmartArt.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- التنقل عبر كل شكل داخل الشريحة الأولى.
- التحقق مما إذا كان الشكل من نوع SmartArt وتحويل النوع المحدد إلى SmartArt إذا كان SmartArt.
- التنقل عبر جميع Nodes داخل شكل SmartArt.
- الوصول وعرض معلومات مثل موقع عقدة SmartArt، المستوى والنص.
// إنشاء كائن من فئة Presentation
var pres = new aspose.slides.Presentation("SmartArtShape.pptx");
try {
// الحصول على الشريحة الأولى
var slide = pres.getSlides().get_Item(0);
// التنقل عبر كل شكل داخل الشريحة الأولى
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// التحقق مما إذا كان الشكل من نوع SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// تحويل نوع الشكل إلى SmartArt
var smart = shape;
// التنقل عبر جميع العقد داخل SmartArt
for (var j = 0; j < smart.getAllNodes().size(); j++) {
// الوصول إلى عقدة SmartArt في الفهرس i
var node = smart.getAllNodes().get_Item(j);
// طباعة معلمات عقدة SmartArt
console.log(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
الوصول إلى عقدة SmartArt الفرعية
الكود النموذجي التالي سيساعد على الوصول إلى العقد الفرعية التابعة للعقد المناسبة في شكل SmartArt.
- إنشاء كائن من فئة Presentation وتحميل العرض مع شكل SmartArt.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- التنقل عبر كل شكل داخل الشريحة الأولى.
- التحقق مما إذا كان الشكل من نوع SmartArt وتحويل النوع المحدد إلى SmartArt إذا كان SmartArt.
- التنقل عبر جميع Nodes داخل شكل SmartArt.
- لكل Node محدد في شكل SmartArt، التنقل عبر جميع Child Nodes داخل العقدة المعينة.
- الوصول وعرض معلومات مثل موقع Child Node، المستوى والنص.
// إنشاء كائن من فئة Presentation
var pres = new aspose.slides.Presentation("AccessChildNodes.pptx");
try {
// الحصول على الشريحة الأولى
var slide = pres.getSlides().get_Item(0);
// التنقل عبر كل شكل داخل الشريحة الأولى
for (let s = 0; s < slide.getShapes().size(); s++) {
let shape = slide.getShapes().get_Item(s);
// التحقق مما إذا كان الشكل من نوع SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// تحويل نوع الشكل إلى SmartArt
var smart = shape;
// التنقل عبر جميع العقد داخل SmartArt
for (var i = 0; i < smart.getAllNodes().size(); i++) {
// الوصول إلى عقدة SmartArt في الفهرس i
var node0 = smart.getAllNodes().get_Item(i);
// التنقل عبر العقد الفرعية في عقدة SmartArt في الفهرس i
for (var j = 0; j < node0.getChildNodes().size(); j++) {
// الوصول إلى العقدة الفرعية في عقدة SmartArt
var node = node0.getChildNodes().get_Item(j);
// طباعة معلمات العقدة الفرعية في SmartArt
console.log("j = " + j + ", Text = " + node.getTextFrame().getText() + ", Level = " + node.getLevel() + ", Position = " + node.getPosition());
}
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
الوصول إلى عقدة SmartArt الفرعية في موضع محدد
في هذا المثال سنتعلم كيفية الوصول إلى العقد الفرعية في مواضع معينة تابعة للعقد المناسبة في شكل SmartArt.
- إنشاء كائن من فئة Presentation.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- إضافة شكل StackedList من نوع SmartArt.
- الوصول إلى شكل SmartArt المضاف.
- الوصول إلى العقدة بالفهارس 0 لشكل SmartArt الذي تم الوصول إليه.
- الآن، الوصول إلى Child Node في الموضع 1 للعقدة المحددة باستخدام طريقة get_Item().
- الوصول وعرض معلومات مثل موقع Child Node، المستوى والنص.
// إنشاء كائن العرض
var pres = new aspose.slides.Presentation();
try {
// الوصول إلى الشريحة الأولى
var slide = pres.getSlides().get_Item(0);
// إضافة شكل SmartArt في الشريحة الأولى
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// الوصول إلى عقدة SmartArt في الفهرس 0
var node = smart.getAllNodes().get_Item(0);
// الوصول إلى العقدة الفرعية في الموضع 1 داخل العقدة الأصلية
var position = 1;
var chNode = node.getChildNodes().get_Item(position);
// طباعة معلمات العقدة الفرعية في SmartArt
console.log("Text = " + chNode.getTextFrame().getText() + ", Level = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
if (pres != null) {
pres.dispose();
}
}
إزالة عقدة SmartArt في عرض PowerPoint باستخدام JavaScript
في هذا المثال سنتعلم كيفية إزالة العقد داخل شكل SmartArt.
- إنشاء كائن من فئة Presentation وتحميل العرض مع شكل SmartArt.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- التنقل عبر كل شكل داخل الشريحة الأولى.
- التحقق مما إذا كان الشكل من نوع SmartArt وتحويل النوع المحدد إلى SmartArt إذا كان SmartArt.
- التحقق مما إذا كان SmartArt يحتوي على أكثر من 0 عقد.
- تحديد عقدة SmartArt التي سيتم حذفها.
- الآن، إزالة العقدة المحددة باستخدام طريقة RemoveNode.
- حفظ العرض.
// تحميل العرض المطلوب
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// التنقل عبر كل شكل داخل الشريحة الأولى
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// التحقق مما إذا كان الشكل من نوع SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// تحويل نوع الشكل إلى SmartArt
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// الوصول إلى عقدة SmartArt في الفهرس 0
var node = smart.getAllNodes().get_Item(0);
// إزالة العقدة المحددة
smart.getAllNodes().removeNode(node);
}
}
}
// حفظ العرض
pres.save("RemoveSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
إزالة عقدة SmartArt في موضع محدد
في هذا المثال سنتعلم كيفية إزالة العقد داخل شكل SmartArt في موضع معين.
- إنشاء كائن من فئة Presentation وتحميل العرض مع شكل SmartArt.
- الحصول على مرجع الشريحة الأولى باستخدام الفهرس الخاص بها.
- التنقل عبر كل شكل داخل الشريحة الأولى.
- التحقق مما إذا كان الشكل من نوع SmartArt وتحويل النوع المحدد إلى SmartArt إذا كان SmartArt.
- تحديد عقدة شكل SmartArt في الفهرس 0.
- الآن، التحقق مما إذا كانت العقدة المحددة تحتوي على أكثر من عقدتين فرعيتين.
- الآن، إزالة العقدة في الموضع 1 باستخدام طريقة RemoveNode.
- حفظ العرض.
// تحميل العرض المطلوب
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// التنقل عبر كل شكل داخل الشريحة الأولى
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// التحقق مما إذا كان الشكل من نوع SmartArt
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// تحويل نوع الشكل إلى SmartArt
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// الوصول إلى عقدة SmartArt في الفهرس 0
var node = smart.getAllNodes().get_Item(0);
if (node.getChildNodes().size() >= 2) {
// إزالة العقدة الفرعية في الموضع 1
node.getChildNodes().removeNode(1);
}
}
}
}
// حفظ العرض
pres.save("RemoveSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
تعيين موضع مخصص للعقدة الفرعية في SmartArt
الآن يدعم Aspose.Slides for Node.js via Java تعيين خصائص SmartArtShape للـ X و Y. يوضح المقتطف التالي كيفية تعيين موضع وشكل وتدوير SmartArtShape مخصَّص، يرجى ملاحظة أن إضافة عقد جديدة يؤدي إلى إعادة حساب مواضع أحجام جميع العقد. ومع إعدادات الموضع المخصَّصة، يمكن للمستخدم ضبط العقد وفق المتطلبات.
// إنشاء كائن من فئة Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(20, 20, 600, 500, aspose.slides.SmartArtLayoutType.OrganizationChart);
// نقل شكل SmartArt إلى موقع جديد
var node = smart.getAllNodes().get_Item(1);
var shape = node.getShapes().get_Item(1);
shape.setX(shape.getX() + (shape.getWidth() * 2));
shape.setY(shape.getY() - (shape.getHeight() * 2));
// تغيير عرض شكل SmartArt
node = smart.getAllNodes().get_Item(2);
shape = node.getShapes().get_Item(1);
shape.setWidth(shape.getWidth() + (shape.getWidth() * 2));
// تغيير ارتفاع شكل SmartArt
node = smart.getAllNodes().get_Item(3);
shape = node.getShapes().get_Item(1);
shape.setHeight(shape.getHeight() + (shape.getHeight() * 2));
// تغيير دوران شكل SmartArt
node = smart.getAllNodes().get_Item(4);
shape = node.getShapes().get_Item(1);
shape.setRotation(90);
pres.save("SmartArt.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
التحقق من عقدة المساعد
سنعتمد الشكل SmartArt التالي في تحقيقنا في أقسام مختلفة من هذه المقالة.
![]() |
|---|
| الشكل: الشكل SmartArt المصدر في الشريحة |
في الكود النموذجي التالي سنستكشف كيفية تحديد العقد المساعدة في مجموعة عقد SmartArt وتغييرها.
- إنشاء كائن من فئة Presentation وتحميل العرض مع شكل SmartArt.
- الحصول على مرجع الشريحة الثانية باستخدام الفهرس الخاص بها.
- التنقل عبر كل شكل داخل الشريحة الأولى.
- التحقق مما إذا كان الشكل من نوع SmartArt وتحويل النوع المحدد إلى SmartArt إذا كان SmartArt.
- التنقل عبر جميع العقد داخل شكل SmartArt والتحقق مما إذا كانت Assistant Nodes.
- تغيير حالة عقدة المساعد إلى عقدة عادية.
- حفظ العرض.
// إنشاء نسخة عرض
var pres = new aspose.slides.Presentation("AddNodes.pptx");
try {
// الانتقال عبر كل شكل داخل الشريحة الأولى
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// التحقق مما إذا كان الشكل من نوع SmartArt
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// تحويل النوع إلى SmartArt
var smart = shape;
// التنقل عبر جميع العقد في شكل SmartArt
for (var j = 0; j < smart.getAllNodes().size(); j++) {
var node = smart.getAllNodes().get_Item(j);
// التحقق مما إذا كانت العقدة عقدة مساعد
if (node.isAssistant()) {
// ضبط عقدة المساعد إلى غير مساعد وجعلها عقدة عادية
node.isAssistant();
}
}
}
}
// حفظ العرض
pres.save("ChangeAssitantNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
![]() |
|---|
| الشكل: تم تغيير عقد المساعد في شكل SmartArt داخل الشريحة |
تعيين تنسيق تعبئة العقدة
Aspose.Slides for Node.js via Java يجعل من الممكن إضافة أشكال SmartArt مخصصة وتعيين تنسيق تعبئتها. توضح هذه المقالة كيفية إنشاء والوصول إلى أشكال SmartArt وتعيين تنسيق تعبئتها باستخدام Aspose.Slides for Node.js via Java.
يرجى اتباع الخطوات التالية:
- إنشاء كائن من فئة Presentation.
- الحصول على مرجع شريحة باستخدام الفهرس الخاص بها.
- إضافة شكل SmartArt بتعيين LayoutType الخاص به.
- تعيين FillFormat لعقد شكل SmartArt.
- كتابة العرض المعدل كملف PPTX.
// إنشاء كائن العرض
var pres = new aspose.slides.Presentation();
try {
// الوصول إلى الشريحة
var slide = pres.getSlides().get_Item(0);
// إضافة شكل SmartArt والعقد
var chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, aspose.slides.SmartArtLayoutType.ClosedChevronProcess);
var node = chevron.getAllNodes().addNode();
node.getTextFrame().setText("Some text");
// ضبط تعبئة العقدة
for (let i = 0; i < node.getShapes().size(); i++) {
let item = node.getShapes().get_Item(i);
item.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
item.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
}
// حفظ العرض
pres.save("TestSmart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
إنشاء صورة مصغرة لعقدة SmartArt الفرعية
يمكن للمطورين إنشاء صورة مصغرة لعقدة فرعية من SmartArt باتباع الخطوات التالية:
- إنشاء كائن من فئة Presentation.
- إضافة SmartArt.
- الحصول على مرجع عقدة باستخدام الفهرس الخاص بها.
- الحصول على صورة المصغرة.
- حفظ صورة المصغرة بأي تنسيق صورة مرغوب.
// إنشاء كائن من فئة Presentation التي تمثل ملف PPTX
var pres = new aspose.slides.Presentation();
try {
// إضافة SmartArt
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicCycle);
// الحصول على مرجع عقدة باستخدام الفهرس الخاص بها
var node = smart.getNodes().get_Item(1);
// الحصول على الصورة المصغرة
var slideImage = node.getShapes().get_Item(0).getImage();
// حفظ الصورة المصغرة
try {
slideImage.save("SmartArt_ChildNote_Thumbnail.png", aspose.slides.ImageFormat.Png);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
هل تدعم رسوميات SmartArt؟
نعم. يُعامل SmartArt كشكل عادي، لذا يمكنك تطبيق الرسوم المتحركة القياسية (دخول، خروج، تأكيد، مسارات الحركة) وضبط التوقيت. يمكنك أيضًا تحريك الأشكال داخل عقد SmartArt عند الحاجة.
كيف يمكنني العثور على SmartArt معين في شريحة إذا لم أعرف معرفه الداخلي؟
قم بتعيين والبحث باستخدام النص البديل. يساعد تعيين AltText مميز على SmartArt في العثور عليه دون الاعتماد على المعرفات الداخلية.
هل ستُحافظ مظهر SmartArt عند تحويل العرض إلى PDF؟
نعم. يقوم Aspose.Slides بتصوير SmartArt بدقة بصرية عالية أثناء تصدير PDF، مع الحفاظ على التخطيط والألوان والتأثيرات.
هل يمكن استخراج صورة كاملة لـ SmartArt (للمعاينات أو التقارير)؟
نعم. يمكنك تصوير شكل SmartArt إلى تنسيقات نقطية أو إلى SVG للحصول على مخرجات متجهة قابلة للقياس، ما يجعله مناسبًا للصور المصغرة، التقارير، أو الاستخدام على الويب.

