التلاعب بالأشكال

البحث عن شكل في الشريحة

سيتناول هذا الموضوع تقنية بسيطة لتسهيل عمل المطورين في العثور على شكل معين في شريحة دون استخدام معرّفه الداخلي. من المهم معرفة أن ملفات PowerPoint Presentation ليس لها أي وسيلة لتعريف الأشكال على الشريحة باستثناء معرف فريد داخلي. يبدو أنه من الصعب على المطورين العثور على شكل باستخدام معرفه الفريد الداخلي. جميع الأشكال المضافة إلى الشرائح تحتوي على نص بديل. نقترح على المطورين استخدام النص البديل للعثور على شكل محدد. يمكنك استخدام MS PowerPoint لتحديد النص البديل للأشياء التي تخطط لتغييرها في المستقبل.

بعد تعيين النص البديل لأي شكل مرغوب، يمكنك فتح تلك العروض التقديمية باستخدام Aspose.Slides لـ C++ والتكرار عبر جميع الأشكال المضافة إلى الشريحة. أثناء كل تكرار، يمكنك التحقق من النص البديل للشكل، والشكل الذي يحمل النص البديل المطابق سيكون الشكل المطلوب منك. لإظهار هذه التقنية بطريقة أفضل، قمنا بإنشاء طريقة، FindShape تقوم بالتحقق والعثور على شكل محدد في الشريحة ثم تعيد ببساطة ذلك الشكل.

نسخ الشكل

لنسخ شكل إلى شريحة باستخدام Aspose.Slides لـ C++:

  1. إنشاء مثيل من فئة Presentation.
  2. الحصول على مرجع لشريحة باستخدام فهرسها.
  3. الوصول إلى مجموعة أشكال الشريحة المصدر.
  4. إضافة شريحة جديدة إلى العرض التقديمي.
  5. نسخ الأشكال من مجموعة أشكال الشريحة المصدر إلى الشريحة الجديدة.
  6. حفظ العرض التقديمي المعدل كملف PPTX.

المثال أدناه يضيف شكل مجموعة إلى شريحة.

إزالة الشكل

Aspose.Slides لـ C++ يتيح للمطورين إزالة أي شكل. لإزالة الشكل من أي شريحة، يرجى اتباع الخطوات التالية:

  1. إنشاء مثيل من Presentation class.
  2. الوصول إلى الشريحة الأولى.
  3. العثور على الشكل ذو النص البديل المحدد.
  4. إزالة الشكل.
  5. حفظ الملف على القرص.

إخفاء الشكل

Aspose.Slides لـ C++ يتيح للمطورين إخفاء أي شكل. لإخفاء الشكل من أي شريحة، يرجى اتباع الخطوات التالية:

  1. إنشاء مثيل من Presentation class.
  2. الوصول إلى الشريحة الأولى.
  3. العثور على الشكل ذو النص البديل المحدد.
  4. إخفاء الشكل.
  5. حفظ الملف على القرص.

تغيير ترتيب الشكل

Aspose.Slides لـ C++ يتيح للمطورين إعادة ترتيب الأشكال. إعادة ترتيب الشكل تحدد أي شكل في المقدمة أو أي شكل في الخلف. لإعادة ترتيب الشكل من أي شريحة، يرجى اتباع الخطوات التالية:

  1. إنشاء مثيل من Presentation class.
  2. الوصول إلى الشريحة الأولى.
  3. إضافة شكل.
  4. إضافة نص في إطار نص الشكل.
  5. إضافة شكل آخر بنفس الإحداثيات.
  6. إعادة ترتيب الأشكال.
  7. حفظ الملف على القرص.

الحصول على معرف الشكل Interop

Aspose.Slides لـ C++ يتيح للمطورين الحصول على معرّف شكل فريد في نطاق الشريحة في مقابل خاصية UniqueId، التي تسمح بالحصول على معرّف فريد في نطاق العرض التقديمي. تمت إضافة خاصية OfficeInteropShapeId إلى واجهات IShape وفئة Shape على التوالي. القيمة التي يتم إرجاعها بواسطة خاصية OfficeInteropShapeId تتوافق مع قيمة المعرف لجسم Microsoft.Office.Interop.PowerPoint.Shape. أدناه يتم إعطاء مثال على الكود.

تعيين خاصية النص البديل

Aspose.Slides لـ C++ يتيح للمطورين تعيين النص البديل لأي شكل. لتعيين النص البديل لشكل، يرجى اتباع الخطوات التالية:

  1. إنشاء مثيل من Presentation class.
  2. الوصول إلى الشريحة الأولى.
  3. إضافة أي شكل إلى الشريحة.
  4. القيام ببعض الأعمال مع الشكل المُضاف حديثًا.
  5. التجول عبر الأشكال للعثور على شكل.
  6. تعيين النص البديل.
  7. حفظ الملف على القرص.

الوصول إلى تنسيقات التخطيط للشكل

Aspose.Slides لـ C++ يتيح للمطورين الوصول إلى تنسيقات التخطيط لشكل. توضح هذه المقالة كيف يمكنك الوصول إلى خصائص FillFormat و LineFormat لشكل.

أدناه يتم إعطاء مثال على الكود.

عرض الشكل كـ SVG

الآن يدعم Aspose.Slides لـ C++ عرض شكل كـ svg. تمت إضافة طريقة WriteAsSvg (وفرعها) إلى فئة Shape وواجهة IShape. تسمح هذه الطريقة بحفظ محتوى الشكل كملف SVG. يظهر مقطع الكود أدناه كيفية تصدير شكل الشريحة إلى ملف SVG.

String outSvgFileName = u"SingleShape.svg";

auto pres = System::MakeObject<Presentation>(u"TestExportShapeToSvg.pptx");

auto stream = System::MakeObject<FileStream>(outSvgFileName, FileMode::Create, FileAccess::Write);
pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)->WriteAsSvg(stream);

محاذاة الأشكال

Aspose.Slides يسمح بمحاذاة الأشكال سواء بالنسبة لهامش الشريحة أو بالنسبة لبعضها البعض. لهذا الغرض، تمت إضافة طريقة مفرطة SlidesUtil.AlignShapes(). تُعرّف تعداد ShapesAlignmentType خيارات المحاذاة الممكنة.

مثال 1

يقوم كود المصدر أدناه بمحاذاة الأشكال ذات الفهارس 1 و2 و4 على طول الحافة العلوية للشريحة.

SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"example.pptx");

SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
SharedPtr<IShape> shape1 = slide->get_Shapes()->idx_get(1);
SharedPtr<IShape> shape2 = slide->get_Shapes()->idx_get(2);
SharedPtr<IShape> shape3 = slide->get_Shapes()->idx_get(4);
SlideUtil::AlignShapes(ShapesAlignmentType::AlignTop, true, pres->get_Slides()->idx_get(0), 
System::MakeArray<int32_t>(
    {
        slide->get_Shapes()->IndexOf(shape1),
        slide->get_Shapes()->IndexOf(shape2),
        slide->get_Shapes()->IndexOf(shape3)
    }));

مثال 2

المثال أدناه يوضح كيفية محاذاة مجموعة الأشكال بالكامل بالنسبة لأدنى شكل في المجموعة.

SharedPtr<Presentation> pres = MakeObject<Presentation>(u"example.pptx");
SlideUtil::AlignShapes(ShapesAlignmentType::AlignBottom, false, pres->get_Slides()->idx_get(0)->get_Shapes());