[002] WinForms C# 파워포인트 슬라이드 16대 9 비율로 변환하기

2023. 1. 23. 23:13프로그램개발/WinForms C#

반응형

안녕하세요~ totally 개발자입니다.

 

오늘 이 시간에는 파워포인트 슬라이드를 16대 9비율로 변경해보는 코드에 대해 살펴보고자 합니다. 사실 요즘에는 4대3 비율을 많이 사용하고 있지 않고 16대 9비율을 많이 사용하고 있지만 여전히 4대3 비율의 슬라이드도 많이 존재하는 실정입니다. 그래서 이번에는 파일을 직접 선택하여 그 파일의 비율을 16대 9로 변경해보도록 하겠습니다. 아래와 같이 샘플 PPT가 하나 있다고 가정하겠습니다.

 

 

Step 1: 보기 -> 도구상자 -> OpenFileDialog를 드래그 앤 드롭으로 추가해줍니다.

 

Step 2: 버튼을 하나 추가해줍니다.

 

 

Step 3: 버튼을 더블 클릭하여 이 메소드 안에 var filePath = string.Empty로 변수를 초기화해줍니다.

 

Step 4: using을 사용하여 이 안에 openFileDialog의 내용을 적어줍니다. 주석을 참고하시면 됩니다.

 

Step 5: 아래처럼 objApp.ActivePresentation.PageSetup.SlideSize를 PowerPoint.PpSlideSizeType.ppSlideSizeOnScreen16x9로 할당해주시면 됩니다.

 

참고로 저는 맨 위에 using으로 이렇게 지정해주고 시작했습니다. 혹시 에러 발견되시는 분들과 처음 들어오신 분들께서는 지난 001 Winform 포스팅을 참고해주세요.

 

Step 6: 실행해서 버튼을 클릭했을 때 이렇게 파일을 선택할 수 있게 나오면 됩니다.

 

Step 7: 아래처럼 16대 9 비율로 변경되면 성공입니다.

 

추후에도 작업하다가 유용한 것들 있으면 추가적으로 계속 포스팅하도록 하겠습니다. 감사합니다.

 

[전체 소스 코드]

 

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using MsoTriState = Microsoft.Office.Core.MsoTriState;
using Microsoft.Office.Interop.PowerPoint;
namespace WinFormPowerPoint
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
// ... 지난 [001] 포스팅 참고
}
private void button2_Click(object sender, EventArgs e)
{
// 파일 경로 변수 초기화
var filePath = string.Empty;
// 파일 열기 팝업
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
// 초기 경로 세팅
openFileDialog.InitialDirectory = "c:\\";
// 파일 필터
openFileDialog.Filter = "ppt files (*.ppt)|*.ppt|pptx files (*.pptx)|*.pptx";
// 인덱스 설정
openFileDialog.FilterIndex = 1;
openFileDialog.RestoreDirectory = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 파일 경로 지정
filePath = openFileDialog.FileName;
}
}
// 새로운 파워포인트 변수 설정 및 파일 열기
PowerPoint.Application objApp = new PowerPoint.Application();
objApp.Visible = MsoTriState.msoTrue;
Presentations objPresens = objApp.Presentations;
PowerPoint._Presentation objPres = objApp.Presentations.Open(filePath, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
// 와이드 스크린으로 변경하기
objApp.ActivePresentation.PageSetup.SlideSize = PowerPoint.PpSlideSizeType.ppSlideSizeOnScreen16x9;
}
}
}
view raw winFormGist2.cs hosted with ❤ by GitHub

 

반응형