MS PowerPoint یک برنامه کاربردی غنی از ویژگی است که به شما امکان می دهد ارائه های جذابی با متن، گرافیک، انیمیشن، نمودار و چندین عنصر دیگر ایجاد کنید. در این پست، نحوه پیاده سازی ویژگی های اولیه اتوماسیون پاورپوینت را در برنامه های C++ یاد خواهید گرفت. به ویژه، با نحوه ایجاد پاورپوینت و اضافه کردن متن، تصاویر، نمودارها و جداول به اسلایدها با استفاده از ++C آشنا خواهید شد.
- C++ PowerPoint API
- یک ارائه پاورپوینت در C++ ایجاد کنید
- اسلایدها را به یک ارائه اضافه کنید
- اضافه کردن متن به اسلاید پاورپوینت
- ایجاد یک جدول در ارائه
- ایجاد نمودار در ارائه
- یک ارائه پاورپوینت موجود را باز کنید
- مجوز رایگان دریافت کنید
C++ PowerPoint API
Aspose.Slides for C++ برای خودکارسازی ویژگی های دستکاری ارائه پاورپوینت در برنامه های C++ طراحی شده است. با استفاده از API، می توانید ارائه های پاورپوینت را به طور یکپارچه ایجاد، ویرایش یا تبدیل کنید. میتوانید بسته کامل فایلهای API را دانلود یا از NuGet دریافت کنید.
یک ارائه پاورپوینت در C++ ایجاد کنید
بیایید با ایجاد یک ارائه پاورپوینت خالی با استفاده از Aspose.Slides برای C++ شروع کنیم. مراحل زیر برای انجام این عملیات آورده شده است.
- یک شی از کلاس Presentation ایجاد کنید.
- ارائه را با استفاده از روش Presentation->Save(String, SaveFormat::Pptx) ذخیره کنید.
نمونه کد زیر نحوه ایجاد یک ارائه پاورپوینت با استفاده از 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";
//کلاس Instantiate Presentation که فایل 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++ اضافه کنید
هنگامی که ارائه پاورپوینت را ایجاد کردید، می توانید اسلایدهایی را در آن قرار دهید. مراحل زیر برای افزودن اسلاید به ارائه پاورپوینت آمده است:
- یک شی از کلاس Presentation ایجاد کنید.
- با استفاده از روش Presentation->getSlides() اسلایدها را در شی ISlideCollection دریافت کنید.
- اسلاید را با استفاده از روش ISlideCollection->AddEmptySlide() اضافه کنید.
- ارائه را با استفاده از روش Presentation->Save(String, SaveFormat::Pptx) ذخیره کنید.
نمونه کد زیر نحوه افزودن اسلایدها به ارائه پاورپوینت با استفاده از 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";
// کلاس Instantiate Presentation که فایل ارائه را نشان می دهد
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Instantiate SlideCollection calss
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);
برای کسب اطلاعات بیشتر در مورد دستکاری اسلایدها، به [افزودن، قالببندی و دستکاری اسلایدها11 مراجعه کنید.
اضافه کردن متن به اسلاید پاورپوینت با استفاده از C++
حال، بیایید متن را به یک اسلاید در ارائه پاورپوینت اضافه کنیم. برای این کار باید یک Textbox به اسلاید وارد کنید. در زیر مراحل انجام این عملیات آورده شده است.
- با استفاده از کلاس 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->getPortion()->idxget(0) به شی IPortion دسترسی پیدا کنید.
- متن را با استفاده از روش IPortion->setText(u"Aspose TextBox”) تنظیم کنید.
- ارائه را با استفاده از روش Presentation->Save(String, SaveFormat::Pptx) ذخیره کنید.
نمونه کد زیر نحوه افزودن متن به اسلایدها در ارائه پاورپوینت با استفاده از 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);
// یک AutoShape از نوع Rectangle اضافه کنید
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);
// TextFrame را به مستطیل اضافه کنید
ashp->AddTextFrame(u" ");
// دسترسی به قاب متن
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame();
// شی Paragraph را برای قاب متن ایجاد کنید
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);
برای کسب اطلاعات بیشتر در مورد دستکاری متن در ارائهها، به [افزودن، قالببندی، و دستکاری متن26 مراجعه کنید.
با استفاده از C++ یک جدول در ارائه ایجاد کنید
مراحل زیر برای افزودن جدول در اسلاید ارائه پاورپوینت با استفاده از Aspose.Slides برای C++ آمده است.
- یک نمونه از کلاس Presentation ایجاد کنید.
- مرجع یک اسلاید را به یک شیء ISlide بدست آورید.
- آرایه های ستون ها و ردیف ها را با ارائه عرض تعریف کنید.
- با استفاده از روش ISlide->getShapes()->AddTable() یک جدول به اسلاید اضافه کنید.
- در هر سلول تکرار کنید تا قالب بندی را در حاشیه های بالا، پایین، راست و چپ اعمال کنید.
- در صورت لزوم سلول ها را ادغام کنید.
- برای افزودن متن به قاب متن یک سلول دسترسی داشته باشید.
- ارائه را به عنوان یک فایل PPTX ذخیره کنید.
نمونه کد زیر نحوه ایجاد جدول در ارائه پاورپوینت با استفاده از 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) x (2، 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);
// ادغام سلول ها (1، 2) x (2، 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);
// PPTX را در دیسک ذخیره کنید
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
برای کسب اطلاعات بیشتر در مورد دستکاری جداول، به [افزودن، بهروزرسانی و دستکاری جداول30 مراجعه کنید.
یک نمودار در ارائه با استفاده از C++ ایجاد کنید
Aspose.Slides برای C++ از انواع نمودارها مانند پراکنده، نقشه درختی، هیستوگرام و و غیره پشتیبانی می کند. برای نمایش، بیایید یک نمودار معمولی ایجاد کنیم. در زیر مراحل انجام این عملیات آورده شده است.
- یک نمونه از کلاس Presentation ایجاد کنید.
- مرجع اسلایدی را که می خواهید نمودار را روی آن اضافه کنید، بدست آورید.
- نمودار را با داده های پیش فرض به همراه نوع دلخواه با استفاده از روش ISlide->getShapes()->AddChart() اضافه کنید.
- مرجع نمودار را در شیء IChart دریافت کنید.
- داده های نمودار را پاک کنید و سری ها و دسته های جدید اضافه کنید.
- داده های نمودار جدید را برای سری نمودار اضافه کنید.
- رنگ پر را برای سری نمودارها تنظیم کنید.
- برچسب های سری نمودار را اضافه کنید.
- ارائه را به عنوان یک فایل PPTX ذخیره کنید.
نمونه کد زیر نحوه درج نمودار در ارائه پاورپوینت با استفاده از 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";
//کلاس Instantiation Presentation که فایل 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());
// دسته بندی ها را اضافه کنید
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);
درباره دستکاری نمودارها از افزودن، قالببندی، و دستکاری نمودارها بیشتر بیاموزید.
یک ارائه پاورپوینت در C++ باز کنید
همچنین میتوانید ارائههای پاورپوینت موجود را برای ویرایش محتوا باز کنید. برای این کار می توانید مراحل زیر را دنبال کنید:
- فایل PPTX را با استفاده از کلاس Presentation با ارائه نام فایل بارگیری کنید.
- محتوای ارائه را به روز کنید.
- فایل به روز شده را با استفاده از روش Presentation->Save(String, SaveFormat) ذخیره کنید.
نمونه کد زیر نحوه باز کردن یک ارائه پاورپوینت موجود با استفاده از C++ را نشان می دهد.
// مسیر دایرکتوری اسناد
const String templatePath = u"../templates/AccessSlides.pptx";
// کلاس Instantiate Presentation که فایل PPTX را نشان می دهد
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// تعداد اسلایدهای چاپی
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());
مجوز رایگان دریافت کنید
برای امتحان API بدون محدودیت ارزیابی، میتوانید [یک مجوز موقت رایگان دریافت کنید38.
نتیجه
در این مقاله نحوه ایجاد پاورپوینت از داخل برنامه های C++ را یاد گرفتید. راهنمای گام به گام و نمونه کد به همراه مراجع API نحوه ایجاد یک ارائه را از ابتدا و درج اسلایدها، متن، جداول و نمودارها در آن نشان داده است. میتوانید با استفاده از مستندات درباره API بیشتر کاوش کنید.