MS PowerPoint — это многофункциональное приложение, которое позволяет создавать привлекательные презентации с текстом, графикой, анимацией, диаграммами и некоторыми другими элементами. В этом посте вы узнаете, как реализовать основные функции автоматизации PowerPoint в приложениях C++. В частности, вы узнаете, как создавать презентации PowerPoint и добавлять к слайдам текст, изображения, диаграммы и таблицы с помощью C++.
- С++ API PowerPoint
- Создать презентацию PowerPoint на C++
- Добавление слайдов в презентацию
- Добавить текст на слайд PowerPoint
- Создать таблицу в презентации
- Создайте диаграмму в презентации
- Откройте существующую презентацию PowerPoint
- Получить бесплатную лицензию
С++ API PowerPoint
Aspose.Slides for C++ предназначен для автоматизации функций управления презентациями PowerPoint в приложениях C++. Используя API, вы можете легко создавать, редактировать или преобразовывать презентации PowerPoint. Вы можете загрузить полный пакет файлов API или получить его из NuGet.
Создать презентацию PowerPoint на C++
Начнем с создания пустой презентации PowerPoint с помощью Aspose.Slides для C++. Ниже приведены шаги для выполнения этой операции.
- Создайте объект класса Презентация.
- Сохраните презентацию методом Презентация->Сохранить(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";
//Создать экземпляр класса Presentation, который представляет файл PPTX.
SharedPtr<Presentation> pres = MakeObject<Presentation>();
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Добавить автофигуру типа line
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:
- Создайте объект класса Презентация.
- Получить слайды в объекте ISlideCollection с помощью метода Presentation->getSlides().
- Добавьте слайд с помощью метода ISlideCollection->AddEmptySlide().
- Сохраните презентацию методом Презентация->Сохранить(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";
// Создать экземпляр класса Presentation, который представляет файл презентации
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Создание экземпляра класса 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”).
- Сохраните презентацию методом Презентация->Сохранить(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();
// Создайте объект 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);
Чтобы узнать больше об управлении текстом в презентациях, посетите Добавление, форматирование и управление текстом.
Создайте таблицу в презентации с помощью C++
Ниже приведены шаги по добавлению таблицы в слайд презентации PowerPoint с помощью Aspose.Slides для C++.
- Создайте экземпляр класса Презентация.
- Получить ссылку на слайд в объект 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) 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);
Чтобы узнать больше об управлении таблицами, посетите Добавление, обновление и управление таблицами.
Создайте диаграмму в презентации с помощью C++
Aspose.Slides for C++ поддерживает различные типы диаграмм, такие как разброс, древовидная карта, гистограмма и и т. д.. Для демонстрации создадим обычную диаграмму. Ниже приведены шаги для выполнения этой операции.
- Создайте экземпляр класса Презентация.
- Получите ссылку на слайд, на который вы хотите добавить диаграмму.
- Добавьте диаграмму с данными по умолчанию вместе с желаемым типом, используя метод 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";
//Создать экземпляр класса 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);
Узнайте больше об управлении диаграммами в разделе Добавление, форматирование и управление диаграммами.
Откройте презентацию PowerPoint на C++
Вы также можете открыть существующую презентацию PowerPoint, чтобы отредактировать ее содержимое. Для этого вы можете выполнить следующие шаги:
- Загрузите файл PPTX, используя класс Presentation, указав имя файла.
- Обновите содержание презентации.
- Сохраните обновленный файл методом Презентация->Сохранить(String, SaveFormat).
В следующем примере кода показано, как открыть существующую презентацию PowerPoint с помощью C++.
// Путь к каталогу документов
const String templatePath = u"../templates/AccessSlides.pptx";
// Создать экземпляр класса Presentation, который представляет файл PPTX.
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Распечатать количество слайдов
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать API без ограничений пробной версии.
Вывод
В этой статье вы узнали, как создавать презентации PowerPoint из приложений C++. Пошаговое руководство и примеры кода вместе со ссылками на API показали, как создать презентацию с нуля и вставить в нее слайды, текст, таблицы и диаграммы. Вы можете узнать больше об API, используя документацию.