vytvářet powerpointové prezentace C++

MS PowerPoint je aplikace bohatá na funkce, která vám umožní vytvářet atraktivní prezentace s textem, grafikou, animacemi, grafy a několika dalšími prvky. V tomto příspěvku se dozvíte, jak implementovat základní funkce automatizace PowerPointu v aplikacích C++. Zejména se naučíte vytvářet prezentace v PowerPointu a přidávat text, obrázky, grafy a tabulky na snímky pomocí C++.

C++ PowerPoint API

Aspose.Slides for C++ je navržen tak, aby automatizoval funkce manipulace s prezentacemi PowerPoint v aplikacích C++. Pomocí rozhraní API můžete bez problémů vytvářet, upravovat nebo převádět prezentace PowerPoint. Můžete si stáhnout kompletní balíček souborů API nebo jej získat z NuGet.

Vytvořte prezentaci v PowerPointu v C++

Začněme vytvořením prázdné powerpointové prezentace pomocí Aspose.Slides for C++. Následují kroky k provedení této operace.

Následující ukázka kódu ukazuje, jak vytvořit prezentaci PowerPoint pomocí C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// Cesta k adresáři dokumentů.
	const String outPath = u"../out/SampleChartresult.pptx";

	//Třída okamžité prezentace, která představuje soubor PPTX
	SharedPtr<Presentation> pres = MakeObject<Presentation>();
	
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Přidejte automatický tvar typového řádku
	slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
	
	//Ukládání prezentace
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Přidat snímek do prezentace v C++

Jakmile vytvoříte prezentaci v PowerPointu, můžete do ní vkládat snímky. Níže jsou uvedeny kroky pro přidání snímků do prezentace PowerPoint:

Následující ukázka kódu ukazuje, jak přidat snímky do prezentace PowerPoint pomocí C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// Cesta k adresáři dokumentů.
	const String outPath = u"../templates/AddSlides.pptx";

	// Instantiate Prezentační třída, která představuje soubor prezentace
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	// Okamžitě spustit SlideCollection calss
	SharedPtr<ISlideCollection> slds = pres->get_Slides();

	for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
	{
		// Přidejte prázdný snímek do kolekce Snímky
		slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));

	}

	// Uložte soubor PPTX na disk
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Chcete-li se dozvědět více o manipulaci se snímky, navštivte Přidávání, formátování a manipulace se snímky.

Přidejte text na snímek PowerPoint pomocí C++

Nyní přidáme text na snímek v prezentaci PowerPoint. K tomu je třeba do snímku vložit textové pole. Níže jsou uvedeny kroky k provedení této operace.

Následující ukázka kódu ukazuje, jak přidat text do snímků v prezentaci PowerPoint pomocí C++.

// Cesta k adresáři dokumentů.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";

// Načtěte požadovanou prezentaci
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Přístup k prvnímu snímku
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);

// Přidejte automatický tvar typu Obdélník
SharedPtr<IAutoShape>  ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);

// Přidejte TextFrame do obdélníku
ashp->AddTextFrame(u" ");

// Přístup k textovému rámečku
SharedPtr<ITextFrame>  txtFrame = ashp->get_TextFrame();

// Vytvořte objekt Odstavec pro textový rámeček
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);

// Vytvořit objekt části pro odstavec
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
	
// Uložte PPTX na disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Chcete-li se dozvědět více o manipulaci s textem v prezentacích, navštivte Přidávání, formátování a manipulace s textem.

Vytvořte tabulku v Presentation pomocí C++

Následují kroky pro přidání tabulky do snímku prezentace PowerPoint pomocí Aspose.Slides for C++.

  • Vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek do objektu ISlide.
  • Definujte pole sloupců a řádků zadáním šířky.
  • Přidejte tabulku na snímek pomocí metody ISlide->getShapes()->AddTable().
  • Iterujte každou buňku a použijte formátování na horní, dolní, pravé a levé ohraničení.
  • V případě potřeby sloučte buňky.
  • Otevřete textový rámeček buňky a přidejte nějaký text.
  • Uložte prezentaci jako soubor PPTX.

Následující ukázka kódu ukazuje, jak vytvořit tabulku v prezentaci PowerPoint pomocí C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Cesta k adresáři dokumentů.
const String outPath = u"../out/TableFromScratch_out.pptx";

// Načtěte požadovanou prezentaci
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Přístup k prvnímu snímku
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);

// Definujte sloupce s šířkami a řádky s výškou
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);

// Přidejte na snímek tvar tabulky
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);


// Nastavte formát ohraničení pro každou buňku
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);

	}

}

// Sloučení buněk (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);

// Sloučení buněk (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);


// Uložte PPTX na disk
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Chcete-li se dozvědět více o manipulaci s tabulkami, navštivte Přidávání, aktualizace a manipulace s tabulkami.

Vytvořte graf v prezentaci pomocí C++

Aspose.Slides for C++ podporuje různé typy grafů, jako jsou rozptýlené, stromová mapa, histogram a atd. Pro demonstraci si vytvořte normální graf. Níže jsou uvedeny kroky k provedení této operace.

  • Vytvořte instanci třídy Presentation.
  • Získejte odkaz na snímek, na který chcete přidat graf.
  • Přidejte graf s výchozími daty spolu s požadovaným typem pomocí metody ISlide->getShapes()->AddChart().
  • Získejte odkaz na graf v objektu IChart.
  • Vymažte data grafu a přidejte nové řady a kategorie.
  • Přidejte nová data grafu pro řadu grafů.
  • Nastavte barvu výplně pro řadu grafů.
  • Přidejte popisky řad grafů.
  • Uložte prezentaci jako soubor PPTX.

Následující ukázka kódu ukazuje, jak vložit graf do prezentace PowerPoint pomocí C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C

	// Cesta k adresáři dokumentů.
	const String outPath = u"../out/NormalCharts_out.pptx";

	//Třída okamžité prezentace, která představuje soubor PPTX
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	//Přístup k prvnímu snímku
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Přidat graf s výchozími daty
	SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);


	// Nastavení indexu datového listu grafu
	int defaultWorksheetIndex = 0;

	// Získání listu dat grafu
	SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

	// Nastavení názvu grafu
	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);

	// Smazat výchozí vygenerované série a kategorie
	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();


	// Nyní přidáváme novou sérii
	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());

	// Přidat kategorie
	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")));

	
	// Vezměte první sérii grafů
	SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

	// Nyní se vyplňují data série
	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)));

	// Nastavení barvy výplně pro sérii
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());


	// Vezměte druhou řadu grafů
	 series = chart->get_ChartData()->get_Series()->idx_get(1);

	// Nyní se vyplňují data série
	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)));

	// Nastavení barvy výplně pro sérii
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());


	// První štítek bude zobrazovat název kategorie
	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);

	// Zobrazit hodnotu pro třetí štítek
	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"/");

	// Zapište soubor prezentace na disk
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Další informace o manipulaci s grafy naleznete v Přidávání, formátování a manipulace s grafy.

Otevřete prezentaci PowerPoint v C++

Chcete-li upravit obsah, můžete také otevřít existující PowerPointové prezentace. K tomu můžete postupovat podle následujících kroků:

Následující ukázka kódu ukazuje, jak otevřít existující prezentaci PowerPoint pomocí C++.

// Cesta k adresáři dokumentů
const String templatePath = u"../templates/AccessSlides.pptx";

// Třída okamžité prezentace, která představuje soubor PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// Tisk počtu snímků
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci, abyste mohli vyzkoušet API bez omezení hodnocení.

Závěr

V tomto článku jste se naučili vytvářet prezentace PowerPoint z aplikací C++. Podrobný průvodce a ukázky kódu spolu s odkazy na API ukázaly, jak vytvořit prezentaci od začátku a vložit do ní snímky, text, tabulky a grafy. Více o API můžete prozkoumat pomocí dokumentace.

Viz také