MS PowerPoint는 텍스트, 그래픽, 애니메이션, 차트 및 기타 여러 요소가 포함된 매력적인 프레젠테이션을 만들 수 있는 기능이 풍부한 응용 프로그램입니다. 이 게시물에서는 C++ 응용 프로그램 내에서 기본 PowerPoint 자동화 기능을 구현하는 방법을 배웁니다. 특히 C++를 사용하여 PowerPoint 프레젠테이션을 만들고 슬라이드에 텍스트, 이미지, 차트 및 표를 추가하는 방법을 알게 됩니다.
- C++ 파워포인트 API
- C++에서 PowerPoint 프레젠테이션 만들기
- 프레젠테이션에 슬라이드 추가
- PowerPoint 슬라이드에 텍스트 추가
- 프레젠테이션에서 테이블 만들기
- 프레젠테이션에서 차트 만들기
- 기존 PowerPoint 프레젠테이션 열기
- 무료 라이선스 받기
C++ 파워포인트 API
Aspose.Slides for C++은 C++ 응용 프로그램 내에서 PowerPoint 프레젠테이션 조작 기능을 자동화하도록 설계되었습니다. API를 사용하여 PowerPoint 프레젠테이션을 원활하게 생성, 편집 또는 변환할 수 있습니다. API 파일의 전체 패키지를 다운로드하거나 NuGet에서 가져올 수 있습니다.
C++에서 PowerPoint 프레젠테이션 만들기
C++용 Aspose.Slides를 사용하여 빈 PowerPoint 프레젠테이션을 만드는 것으로 시작해 보겠습니다. 다음은 이 작업을 수행하는 단계입니다.
- Presentation 클래스의 객체를 생성합니다.
- Presentation->Save(String, SaveFormat::Pptx) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 C++를 사용하여 PowerPoint 프레젠테이션을 만드는 방법을 보여줍니다.
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 파일을 나타내는 Presentation 클래스 인스턴스화
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 클래스의 개체를 만듭니다.
- Presentation->getSlides() 메서드를 사용하여 ISlideCollection 개체에서 슬라이드를 가져옵니다.
- ISlideCollection->AddEmptySlide() 메서드를 사용하여 슬라이드를 추가합니다.
- Presentation->Save(String, SaveFormat::Pptx) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 C++를 사용하여 PowerPoint 프레젠테이션에 슬라이드를 추가하는 방법을 보여줍니다.
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>();
// 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);
슬라이드 조작에 대한 자세한 내용은 슬라이드 추가, 서식 지정 및 조작을 참조하십시오.
C++를 사용하여 PowerPoint 슬라이드에 텍스트 추가
이제 PowerPoint 프레젠테이션의 슬라이드에 텍스트를 추가해 보겠습니다. 이를 위해 슬라이드에 텍스트 상자를 삽입해야 합니다. 다음은 이 작업을 수행하는 단계입니다.
- Presentation 클래스를 사용하여 새 프레젠테이션을 만들거나 기존 프레젠테이션을 로드합니다.
- Presentation->getSlides()->idxget(int) 메서드를 사용하여 ISlide 개체로 슬라이드의 참조를 가져옵니다.
- ISlide->getShapes()->AddAutoShape(ShapeType::Rectangle, int, int, int, int) 메서드를 사용하여 슬라이드에 사각형을 추가하고 IAutoShape 개체에서 참조를 가져옵니다.
- IAutoShape->AddTextFrame(u" “) 메서드를 사용하여 텍스트 프레임을 추가합니다.
- IAutoShape->getTextFrame()을 사용하여 ITextFrame 객체로 텍스트 프레임을 가져옵니다.
- ITextFrame->getParagraphs()->idxget(0)을 사용하여 IParagraph 객체로 단락을 가져옵니다.
- IPargraph->getPortions()->idxget(0)를 사용하여 단락의 일부를 IPortion 개체로 액세스합니다.
- IPortion->setText(u"Aspose TextBox”) 메서드를 사용하여 텍스트를 설정합니다.
- Presentation->Save(String, SaveFormat::Pptx) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 C++를 사용하여 PowerPoint 프레젠테이션의 슬라이드에 텍스트를 추가하는 방법을 보여줍니다.
// 문서 디렉토리의 경로입니다.
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++를 사용하여 프레젠테이션에서 테이블 만들기
다음은 Aspose.Slides for C++를 사용하여 PowerPoint 프레젠테이션의 슬라이드에 표를 추가하는 단계입니다.
- Presentation 클래스의 인스턴스를 만듭니다.
- ISlide 개체에 대한 슬라이드의 참조를 얻습니다.
- 너비를 제공하여 열 및 행 배열을 정의합니다.
- ISlide->getShapes()->AddTable() 메서드를 사용하여 슬라이드에 테이블을 추가합니다.
- 각 셀을 반복하여 위쪽, 아래쪽, 오른쪽 및 왼쪽 테두리에 서식을 적용합니다.
- 필요한 경우 셀을 병합합니다.
- 일부 텍스트를 추가하려면 셀의 텍스트 프레임에 액세스합니다.
- 프레젠테이션을 PPTX 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 PowerPoint 프레젠테이션에서 테이블을 만드는 방법을 보여줍니다.
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++는 분산형, 트리맵, 히스토그램 및 etc과 같은 다양한 유형의 차트를 지원합니다. 데모를 위해 일반 차트를 만들어 보겠습니다. 다음은 이 작업을 수행하는 단계입니다.
- Presentation 클래스의 인스턴스를 만듭니다.
- 차트를 추가할 슬라이드의 참조를 가져옵니다.
- ISlide->getShapes()->AddChart() 메서드를 사용하여 기본 데이터와 원하는 유형의 차트를 추가합니다.
- IChart 개체에서 차트의 참조를 가져옵니다.
- 차트 데이터를 지우고 새 시리즈 및 범주를 추가합니다.
- 차트 시리즈에 대한 새 차트 데이터를 추가합니다.
- 차트 시리즈의 채우기 색상을 설정합니다.
- 차트 시리즈 레이블을 추가합니다.
- 프레젠테이션을 PPTX 파일로 저장합니다.
다음 코드 샘플은 C++를 사용하여 PowerPoint 프레젠테이션에 차트를 삽입하는 방법을 보여줍니다.
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());
// 카테고리 추가
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++에서 PowerPoint 프레젠테이션 열기
콘텐츠를 편집하기 위해 기존 PowerPoint 프레젠테이션을 열 수도 있습니다. 이를 위해 다음 단계를 수행할 수 있습니다.
- Presentation 클래스를 사용하여 파일 이름을 제공하여 PPTX 파일을 로드합니다.
- 프레젠테이션의 내용을 업데이트합니다.
- Presentation->Save(String, SaveFormat) 메서드를 사용하여 업데이트된 파일을 저장합니다.
다음 코드 샘플은 C++를 사용하여 기존 PowerPoint 프레젠테이션을 여는 방법을 보여줍니다.
// 문서 디렉토리 경로
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());
무료 라이선스 받기
평가 제한 없이 API를 사용해 보려면 무료 임시 라이선스를 얻으십시오.
결론
이 기사에서는 C++ 응용 프로그램 내에서 PowerPoint 프레젠테이션을 만드는 방법을 배웠습니다. API 참조와 함께 단계별 가이드 및 코드 샘플은 프레젠테이션을 처음부터 만들고 슬라이드, 텍스트, 표 및 차트를 삽입하는 방법을 보여줍니다. 문서를 사용하여 API에 대해 자세히 알아볼 수 있습니다.