tạo bài thuyết trình powerpoint C++

MS PowerPoint là một ứng dụng giàu tính năng cho phép bạn tạo các bản trình bày hấp dẫn có văn bản, đồ họa, hoạt ảnh, biểu đồ và một số yếu tố khác. Trong bài đăng này, bạn sẽ tìm hiểu cách triển khai các tính năng tự động hóa cơ bản của PowerPoint trong các ứng dụng C++. Đặc biệt, bạn sẽ biết cách tạo bản trình bày PowerPoint và thêm văn bản, hình ảnh, biểu đồ và bảng vào trang chiếu bằng C++.

API PowerPoint C ++

Aspose.Slides for C++ được thiết kế để tự động hóa các tính năng thao tác trình chiếu PowerPoint trong các ứng dụng C++. Sử dụng API, bạn có thể tạo, chỉnh sửa hoặc chuyển đổi các bản trình bày PowerPoint một cách liền mạch. Bạn có thể tải xuống gói tệp API hoàn chỉnh hoặc tải xuống từ NuGet.

Tạo bản trình bày PowerPoint trong C++

Hãy bắt đầu bằng cách tạo một bản trình bày PowerPoint trống bằng Aspose.Slides for C++. Sau đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho biết cách tạo bản trình bày PowerPoint bằng C++.

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

	// Đường dẫn đến thư mục tài liệu.
	const String outPath = u"../out/SampleChartresult.pptx";

	//Khởi tạo lớp Trình bày đại diện cho tệp PPTX
	SharedPtr<Presentation> pres = MakeObject<Presentation>();
	
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Thêm một autoshape của dòng loại
	slide->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Line, 50.0, 150.0, 300.0, 0.0);
	
	//Đang lưu bản trình bày
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Thêm Slide vào bài thuyết trình trong C++

Khi bạn đã tạo bản trình bày PowerPoint, bạn có thể chèn các trang chiếu vào đó. Sau đây là các bước để thêm trang chiếu vào bản trình bày PowerPoint:

Mẫu mã sau đây cho biết cách thêm trang chiếu vào bản trình bày PowerPoint bằng C++.

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

	// Đường dẫn đến thư mục tài liệu.
	const String outPath = u"../templates/AddSlides.pptx";

	// Khởi tạo lớp Trình bày đại diện cho tệp trình bày
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	// Khởi tạo SlideCollection calss
	SharedPtr<ISlideCollection> slds = pres->get_Slides();

	for (int i = 0; i < pres->get_LayoutSlides()->get_Count(); i++)
	{
		// Thêm một slide trống vào bộ sưu tập Slides
		slds->AddEmptySlide(pres->get_LayoutSlides()->idx_get(i));

	}

	// Lưu tệp PPTX vào Đĩa
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Để tìm hiểu thêm về cách thao tác với trang chiếu, hãy truy cập Thêm, định dạng và thao tác với trang chiếu.

Thêm văn bản vào Slide PowerPoint bằng C++

Bây giờ, hãy thêm văn bản vào một slide trong bản trình bày PowerPoint. Đối với điều này, bạn cần chèn một hộp văn bản vào trang chiếu. Dưới đây là các bước để thực hiện thao tác này.

Mẫu mã sau đây cho biết cách thêm văn bản vào trang chiếu trong bản trình bày PowerPoint bằng C++.

// Đường dẫn đến thư mục tài liệu.
const String outPath = u"../out/TextBoxOnSlideProgram_out.pptx";
const String templatePath = u"../templates/DefaultFonts_out.pptx";

// Tải bản trình bày mong muốn
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Truy cập slide đầu tiên
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0);

// Thêm một AutoShape của loại hình chữ nhật
SharedPtr<IAutoShape>  ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50);

// Thêm TextFrame vào Hình chữ nhật
ashp->AddTextFrame(u" ");

// Truy cập khung văn bản
SharedPtr<ITextFrame>  txtFrame = ashp->get_TextFrame();

// Tạo đối tượng Đoạn cho khung văn bản
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0);

// Tạo đối tượng Portion cho đoạn văn
SharedPtr<IPortion> portion = paragraph->get_Portions()->idx_get(0);
portion->set_Text(u"Aspose TextBox");
	
// Lưu PPTX vào đĩa
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Để tìm hiểu thêm về cách thao tác với văn bản trong bản trình bày, hãy truy cập Thêm, định dạng và thao tác với văn bản.

Tạo một Table trong Presentation sử dụng C++

Sau đây là các bước để thêm bảng vào trang chiếu của bản trình bày PowerPoint bằng cách sử dụng Aspose.Slides for C++.

  • Tạo một thể hiện của lớp Bài thuyết trình.
  • Lấy tham chiếu của trang chiếu vào đối tượng ISlide.
  • Xác định mảng cột và hàng bằng cách cung cấp chiều rộng.
  • Thêm bảng vào trang chiếu bằng phương pháp ISlide->getShapes()->AddTable().
  • Lặp lại qua từng ô để áp dụng định dạng cho các đường viền trên cùng, dưới cùng, bên phải và bên trái.
  • Hợp nhất các ô nếu được yêu cầu.
  • Truy cập khung văn bản của một ô để thêm một số văn bản.
  • Lưu bản trình bày dưới dạng tệp PPTX.

Mẫu mã sau đây cho biết cách tạo bảng trong bản trình bày PowerPoint bằng C++.

For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C
// Đường dẫn đến thư mục tài liệu.
const String outPath = u"../out/TableFromScratch_out.pptx";

// Tải bản trình bày mong muốn
SharedPtr<Presentation> pres = MakeObject<Presentation>();

// Truy cập slide đầu tiên
SharedPtr<ISlide> islide = pres->get_Slides()->idx_get(0);

// Xác định cột có chiều rộng và hàng có chiều cao
System::ArrayPtr<double> dblCols = System::MakeObject<System::Array<double>>(4, 70);
System::ArrayPtr<double> dblRows = System::MakeObject<System::Array<double>>(4, 70);

// Thêm hình dạng bảng vào trang chiếu
SharedPtr<ITable> table = islide->get_Shapes()->AddTable(100, 50, dblCols, dblRows);


// Đặt định dạng đường viền cho từng ô
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);

	}

}

// Hợp nhất các ô (1, 1) x (2, 1)
table->MergeCells(table->idx_get(1, 1), table->idx_get(2, 1), false);

// Hợp nhất các ô (1, 2) x (2, 2)
table->MergeCells(table->idx_get(1, 2), table->idx_get(2, 2), false);


// Lưu PPTX vào đĩa
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Để tìm hiểu thêm về thao tác với bảng, hãy truy cập Thêm, cập nhật và thao tác với bảng.

Tạo biểu đồ trong bản trình bày bằng C++

Aspose.Slides for C++ hỗ trợ nhiều loại biểu đồ khác nhau như biểu đồ phân tán, sơ đồ cây, biểu đồ và v.v.. Để trình diễn, hãy tạo một biểu đồ bình thường. Dưới đây là các bước để thực hiện thao tác này.

  • Tạo một thể hiện của lớp Presentation.
  • Lấy tham chiếu của trang chiếu mà bạn muốn thêm biểu đồ vào.
  • Thêm biểu đồ với dữ liệu mặc định cùng với loại mong muốn bằng phương pháp ISlide->getShapes()->AddChart().
  • Lấy tham chiếu của biểu đồ trong đối tượng IChart.
  • Xóa dữ liệu biểu đồ và thêm chuỗi và danh mục mới.
  • Thêm dữ liệu biểu đồ mới cho chuỗi biểu đồ.
  • Đặt màu tô cho chuỗi biểu đồ.
  • Thêm nhãn chuỗi biểu đồ.
  • Lưu bản trình bày dưới dạng tệp PPTX.

Mẫu mã sau đây cho biết cách chèn biểu đồ vào bản trình bày PowerPoint bằng C++.

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

	// Đường dẫn đến thư mục tài liệu.
	const String outPath = u"../out/NormalCharts_out.pptx";

	//Khởi tạo lớp Trình bày đại diện cho tệp PPTX
	SharedPtr<Presentation> pres = MakeObject<Presentation>();

	//Truy cập slide đầu tiên
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Thêm biểu đồ với dữ liệu mặc định
	SharedPtr<IChart> chart = slide->get_Shapes()->AddChart(Aspose::Slides::Charts::ChartType::ClusteredColumn, 0, 0, 500, 500);


	// Đặt chỉ mục của bảng dữ liệu biểu đồ
	int defaultWorksheetIndex = 0;

	// Lấy bảng tính dữ liệu biểu đồ
	SharedPtr<IChartDataWorkbook> fact = chart->get_ChartData()->get_ChartDataWorkbook();

	// Thiết lập tiêu đề biểu đồ
	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);

	// Xóa chuỗi và danh mục được tạo mặc định
	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();


	// Bây giờ, thêm một loạt mới
	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());

	// Thêm danh mục
	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")));

	
	// Lấy loạt biểu đồ đầu tiên
	SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0);

	// Hiện đang điền dữ liệu chuỗi
	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)));

	// Đặt màu tô cho chuỗi
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Red());


	// Lấy loạt biểu đồ thứ hai
	 series = chart->get_ChartData()->get_Series()->idx_get(1);

	// Hiện đang điền dữ liệu chuỗi
	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)));

	// Đặt màu tô cho chuỗi
	series->get_Format()->get_Fill()->set_FillType(FillType::Solid);
	series->get_Format()->get_Fill()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());


	// Nhãn đầu tiên sẽ được hiển thị Tên danh mục
	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);

	// Hiển thị giá trị cho nhãn thứ ba
	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"/");

	// Ghi tệp trình chiếu vào đĩa
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Tìm hiểu thêm về thao tác biểu đồ từ Thêm, định dạng và thao tác biểu đồ.

Mở bản trình bày PowerPoint bằng C++

Bạn cũng có thể mở một bài thuyết trình PowerPoint hiện có để chỉnh sửa nội dung. Đối với điều này, bạn có thể làm theo các bước dưới đây:

Mẫu mã sau đây cho biết cách mở bản trình bày PowerPoint hiện có bằng C++.

// Đường dẫn đến thư mục tài liệu
const String templatePath = u"../templates/AccessSlides.pptx";

// Khởi tạo lớp Trình bày đại diện cho tệp PPTX
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

// In số lượng slide
printf("Total slides inside presentation are : %d\n", pres->get_Slides()->get_Count());

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử API mà không bị giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã học cách tạo bản trình bày PowerPoint từ bên trong các ứng dụng C++. Hướng dẫn từng bước và các mẫu mã cùng với tham chiếu API đã chỉ ra cách tạo bản trình bày từ đầu và chèn các trang trình bày, văn bản, bảng và biểu đồ vào đó. Bạn có thể khám phá thêm về API bằng cách sử dụng tài liệu.

Xem thêm