MS PowerPoint هو تطبيق غني بالميزات يتيح لك إنشاء عروض تقديمية جذابة تحتوي على نصوص ورسومات ورسوم متحركة ومخططات والعديد من العناصر الأخرى. في هذا المنشور ، ستتعلم كيفية تنفيذ ميزات أتمتة PowerPoint الأساسية داخل تطبيقات C++. على وجه الخصوص ، سوف تتعرف على كيفية إنشاء عروض PowerPoint التقديمية وإضافة نصوص وصور ومخططات وجداول إلى الشرائح باستخدام C++.
- C++ PowerPoint API
- قم بإنشاء عرض PowerPoint تقديمي في C++
- أضف الشرائح إلى عرض تقديمي
- أضف نصًا إلى شريحة PowerPoint
- قم بإنشاء جدول في العرض التقديمي
- قم بإنشاء مخطط في العرض التقديمي
- افتح عرض PowerPoint تقديمي موجود
- احصل على ترخيص مجاني
C++ PowerPoint API
تم تصميم Aspose.Slides for C++ لأتمتة ميزات معالجة عروض PowerPoint التقديمية ضمن تطبيقات C++. باستخدام واجهة برمجة التطبيقات ، يمكنك إنشاء عروض PowerPoint التقديمية أو تحريرها أو تحويلها بسلاسة. يمكنك تنزيل الحزمة الكاملة لملفات API أو الحصول عليها من NuGet.
قم بإنشاء عرض PowerPoint تقديمي في C++
لنبدأ بإنشاء عرض PowerPoint تقديمي فارغ باستخدام Aspose.Slides لـ C++. فيما يلي خطوات إجراء هذه العملية.
- قم بإنشاء كائن من فئة Presentation.
- احفظ العرض التقديمي باستخدام طريقة Presentation-> Save (String، SaveFormat :: Pptx).
يُظهر نموذج التعليمات البرمجية التالي كيفية إنشاء عرض تقديمي لـ PowerPoint باستخدام C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// المسار إلى دليل المستندات.
const String outPath = u"../out/SampleChartresult.pptx";
//إنشاء فئة العرض التقديمي التي تمثل ملف PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// إضافة شكل تلقائي لخط الكتابة
slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
//حفظ العرض
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
أضف شريحة إلى عرض تقديمي في C++
بمجرد إنشاء عرض PowerPoint التقديمي ، يمكنك إدراج شرائح فيه. فيما يلي خطوات إضافة شرائح إلى عرض PowerPoint تقديمي:
- قم بإنشاء كائن من فئة Presentation.
- احصل على الشرائح في كائن ISlideCollection باستخدام طريقة Presentation-> getSlides().
- أضف شريحة باستخدام طريقة ISlideCollection-> AddEmptySlide().
- احفظ العرض التقديمي باستخدام طريقة Presentation-> Save (String، SaveFormat :: Pptx).
يُظهر نموذج التعليمات البرمجية التالي كيفية إضافة شرائح إلى عرض تقديمي لـ PowerPoint باستخدام C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// المسار إلى دليل المستندات.
const String outPath = u"../templates/AddSlides.pptx";
// إنشاء فئة العرض التقديمي التي تمثل ملف العرض التقديمي
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// إنشاء calss SlideCollection
SharedPtr<ISlideCollection> slds = pres->get_Slides();
for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
{
// أضف شريحة فارغة إلى مجموعة الشرائح
slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));
}
// احفظ ملف PPTX على القرص
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
لمعرفة المزيد حول معالجة الشرائح ، قم بزيارة إضافة الشرائح وتنسيقها ومعالجتها.
أضف نصًا إلى شريحة PowerPoint باستخدام C++
الآن ، دعنا نضيف نصًا إلى شريحة في عرض PowerPoint التقديمي. لهذا ، تحتاج إلى إدراج مربع نص في الشريحة. فيما يلي خطوات إجراء هذه العملية.
- قم بإنشاء عرض تقديمي جديد أو تحميل عرض موجود باستخدام فئة Presentation.
- احصل على مرجع الشريحة في كائن ISlide باستخدام طريقة Presentation-> getSlides() -> idxget (int).
- أضف مستطيلاً إلى الشريحة باستخدام طريقة ISlide-> getShapes() -> AddAutoShape (ShapeType :: Rectangle، int، int، int، int) واحصل على مرجعها في كائن IAutoShape.
- أضف إطار نص باستخدام طريقة IAutoShape-> AddTextFrame (u “”).
- احصل على إطار النص باستخدام IAutoShape-> getTextFrame() في كائن ITextFrame.
- احصل على فقرة باستخدام ITextFrame-> getParagraphs() -> idxget (0) في كائن IParagraph.
- قم بالوصول إلى جزء من الفقرة باستخدام IParagraph-> getPortions() -> idxget (0) في كائن IPortion.
- قم بتعيين النص باستخدام طريقة IPortion-> setText (u “Aspose TextBox”).
- احفظ العرض التقديمي باستخدام طريقة Presentation-> Save (String، SaveFormat :: Pptx).
يُظهر نموذج التعليمات البرمجية التالي كيفية إضافة نص إلى الشرائح في عرض تقديمي لـ PowerPoint باستخدام C++.
// المسار إلى دليل المستندات.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";
// قم بتحميل العرض التقديمي المطلوب
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// الوصول إلى الشريحة الأولى
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);
// قم بإضافة شكل تلقائي من نوع المستطيل
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// أضف TextFrame إلى المستطيل
ashp->AddTextFrame(u" ");
// الوصول إلى إطار النص
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
// قم بإنشاء كائن فقرة لإطار النص
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);
// إنشاء كائن جزء للفقرة
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
// احفظ PPTX على القرص
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
لمعرفة المزيد حول معالجة النص في العروض التقديمية ، قم بزيارة إضافة النص وتنسيقه ومعالجته.
قم بإنشاء جدول في العرض التقديمي باستخدام C++
فيما يلي خطوات إضافة جدول في شريحة عرض PowerPoint تقديمي باستخدام Aspose.Slides لـ C++.
- قم بإنشاء مثيل لفئة Presentation.
- الحصول على مرجع شريحة في كائن ISlide.
- تحديد صفائف من الأعمدة والصفوف من خلال توفير العرض.
- أضف جدولاً إلى الشريحة باستخدام طريقة ISlide-> getShapes() -> AddTable().
- كرر خلال كل خلية لتطبيق التنسيق على الحدود العلوية والسفلية واليمنى واليسرى.
- دمج الخلايا إذا لزم الأمر.
- قم بالوصول إلى إطار نص الخلية لإضافة بعض النص.
- احفظ العرض التقديمي كملف PPTX.
يُظهر نموذج التعليمات البرمجية التالي كيفية إنشاء جدول في عرض PowerPoint تقديمي باستخدام C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// المسار إلى دليل المستندات.
const String outPath = u"../out/TableFromScratch_out.pptx";
// قم بتحميل العرض التقديمي المطلوب
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// الوصول إلى الشريحة الأولى
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);
// تحديد الأعمدة ذات العرض والصفوف ذات الارتفاعات
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);
// أضف شكل الجدول إلى الشريحة
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);
// قم بتعيين تنسيق الحدود لكل خلية
for (int x = 0; x < table->get_Rows()->get_Count(); x++)
{
SharedPtr<IRow> row = table->get_Rows()->idx_get(x);
for (int y = 0; y < row->get_Count(); y++)
{
SharedPtr<ICell> cell = row->idx_get(y);
cell->get_BorderTop()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderTop()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderTop()->set_Width(5);
cell->get_BorderBottom()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderBottom()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderBottom()->set_Width(5);
cell->get_BorderLeft()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderLeft()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderLeft()->set_Width(5);
cell->get_BorderRight()->get_FillFormat()->set_FillType(FillType::Solid);
cell->get_BorderRight()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
cell->get_BorderRight()->set_Width(5);
}
}
// دمج الخلايا (1 ، 1) × (2 ، 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);
// دمج الخلايا (1 ، 2) × (2 ، 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);
// حفظ PPTX على القرص
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
لمعرفة المزيد حول معالجة الجداول ، قم بزيارة إضافة الجداول وتحديثها ومعالجتها.
قم بإنشاء مخطط في العرض التقديمي باستخدام C++
Aspose.Slides for C++ يدعم أنواع مختلفة من الرسوم البيانية مثل المبعثرة ، التخطيط الشبكي ، المدرج التكراري ، و إلخ. للشرح ، دعنا ننشئ مخططًا عاديًا. فيما يلي خطوات إجراء هذه العملية.
- قم بإنشاء مثيل للفئة Presentation.
- احصل على مرجع للشريحة التي تريد إضافة المخطط عليها.
- أضف مخططًا بالبيانات الافتراضية جنبًا إلى جنب مع النوع المطلوب باستخدام طريقة ISlide-> getShapes() -> AddChart().
- احصل على مرجع الرسم البياني في كائن IChart.
- امسح بيانات المخطط وأضف سلاسل وفئات جديدة.
- أضف بيانات مخطط جديدة لسلسلة المخطط.
- تعيين لون التعبئة لسلسلة المخطط.
- أضف تسميات سلسلة المخططات.
- احفظ العرض التقديمي كملف PPTX.
يُظهر نموذج التعليمات البرمجية التالي كيفية إدراج مخطط في عرض تقديمي لـ PowerPoint باستخدام C++.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// المسار إلى دليل المستندات.
const String outPath = u"../out/NormalCharts_out.pptx";
//إنشاء فئة العرض التقديمي التي تمثل ملف PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>();
//الوصول إلى الشريحة الأولى
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// أضف مخططًا بالبيانات الافتراضية
SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);
// تحديد فهرس ورقة بيانات الرسم البياني
int defaultWorksheetIndex = 0;
// الحصول على ورقة عمل بيانات المخطط
SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();
// تعيين عنوان المخطط
chart->get_ChartTitle()->AddTextFrameForOverriding(u"Sample Title");
chart->get_ChartTitle()->get_TextFrameForOverriding()->get_TextFrameFormat()->set_CenterText ( NullableBool::True);
chart->get_ChartTitle()->set_Height(20);
chart->set_HasTitle( true);
// حذف السلاسل والفئات الافتراضية التي تم إنشاؤها
chart->get_ChartData()->get_Series()->Clear();
chart->get_ChartData()->get_Categories()->Clear();
int s = chart->get_ChartData()->get_Series()->get_Count();
s = chart->get_ChartData()->get_Categories()->get_Count();
// الآن ، إضافة سلسلة جديدة
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 1, ObjectExt::Box<System::String>(u"Series 1")), chart->get_Type());
chart->get_ChartData()->get_Series()->Add(fact->GetCell(defaultWorksheetIndex, 0, 2, ObjectExt::Box<System::String>(u"Series 2")), chart->get_Type());
// أضف Catrgories
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 1, 0, ObjectExt::Box<System::String>(u"Caetegoty 1")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 2, 0, ObjectExt::Box<System::String>(u"Caetegoty 2")));
chart->get_ChartData()->get_Categories()->Add(fact->GetCell(defaultWorksheetIndex, 3, 0, ObjectExt::Box<System::String>(u"Caetegoty 3")));
// خذ سلسلة المخططات الأولى
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);
// يتم الآن ملء بيانات السلسلة
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 1, ObjectExt::Box<double>(20)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 1, ObjectExt::Box<double>(50)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 1, ObjectExt::Box<double>(30)));
// تحديد لون التعبئة للسلسلة
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());
// خذ سلسلة المخططات الثانية
series = chart->get_ChartData()->get_Series()->idx_get(1);
// يتم الآن ملء بيانات السلسلة
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 1, 2, ObjectExt::Box<double>(30)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 2, 2, ObjectExt::Box<double>(10)));
series->get_DataPoints()->AddDataPointForBarSeries(fact->GetCell(defaultWorksheetIndex, 3, 2, ObjectExt::Box<double>(60)));
// تحديد لون التعبئة للسلسلة
series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());
// سيتم عرض التسمية الأولى اسم الفئة
SharedPtr<IDataLabel> lbl = series->get_DataPoints()->idx_get(0)->get_Label();
lbl->get_DataLabelFormat()->set_ShowCategoryName(true);
lbl = series->get_DataPoints()->idx_get(1)->get_Label();
lbl->get_DataLabelFormat()->set_ShowSeriesName (true);
// إظهار القيمة للتسمية الثالثة
lbl = series->get_DataPoints()->idx_get(2)->get_Label();
lbl->get_DataLabelFormat()->set_ShowValue (true);
lbl->get_DataLabelFormat()->set_ShowSeriesName(true);
lbl->get_DataLabelFormat()->set_Separator (u"/");
// اكتب ملف العرض التقديمي على القرص
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
تعرف على المزيد حول معالجة المخططات من إضافة المخططات وتنسيقها ومعالجتها.
افتح عرض PowerPoint تقديمي في C++
يمكنك أيضًا فتح عروض PowerPoint التقديمية الحالية لتحرير المحتوى. لهذا يمكنك اتباع الخطوات التالية:
- قم بتحميل ملف PPTX باستخدام فئة Presentation من خلال توفير اسم الملف.
- قم بتحديث محتوى العرض التقديمي.
- احفظ الملف المحدث باستخدام طريقة Presentation-> Save (String، SaveFormat).
يُظهر نموذج التعليمات البرمجية التالي كيفية فتح عرض تقديمي لـ PowerPoint موجود باستخدام C++.
// المسار إلى دليل المستندات
const String templatePath = u"../templates/AccessSlides.pptx";
// إنشاء فئة العرض التقديمي التي تمثل ملف PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// طباعة عدد الشرائح
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());
احصل على رخصة مجانية
يمكنك الحصول على ترخيص مؤقت مجاني لتجربة واجهة برمجة التطبيقات بدون قيود التقييم.
استنتاج
في هذه المقالة ، تعلمت كيفية إنشاء عروض PowerPoint التقديمية من داخل تطبيقات C++. أظهر الدليل التفصيلي وعينات التعليمات البرمجية جنبًا إلى جنب مع مراجع API كيفية إنشاء عرض تقديمي من البداية وإدراج الشرائح والنص والجداول والمخططات فيه. يمكنك استكشاف المزيد حول API باستخدام التوثيق.