▶ PowerPoint 파일의 경로를 이용하여 PDF파일로 바꾸는 예제입니다.
▶ 사용하는 참조 (Microsoft.Office.Interop.PowerPoint)
▶ 사용하는 참조 (Office)
// 아래의 using 문을 사용합니다.
using Microsoft.Office.Interop.PowerPoint;
// Max Page limit 정보를 세팅합니다.
public static int MaxPageCount = 500;
// Return Value를 위한 enum을 세팅합니다.
public enum RET_VAL
{
Pass = 0,
OverPage,
Fail
}
/// <summary>
/// 파워포인트 파일을 PDF파일로 변환합니다.
/// </summary>
/// <param name="sourceFilePath">ppt file path</param>
/// <param name="targetFilePath">pdf file path</param>
/// <returns></returns>
public static RET_VAL PowerPointToPDF(string sourceFilePath, string targetFilePath)
{
RET_VAL result = RET_VAL.Pass;
Microsoft.Office.Interop.PowerPoint.Application pptApp = null;
Presentation presentation = null;
try
{
pptApp = new Microsoft.Office.Interop.PowerPoint.Application();
pptApp.DisplayAlerts = PpAlertLevel.ppAlertsNone;
if (pptApp != null)
{
// sourceFilePath를 이용하여 ppt파일을 Presentation 으로 Open합니다.
presentation = pptApp.Presentations.Open(sourceFilePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
if (presentation != null)
{
// slide의 갯수의 Limit값을 이용하여 처리여부를 세팅합니다.
int PageCount = presentation.Slides.Count;
if (PageCount >= MaxPageLimit)
{
result = RET_VAL.OverPage;
}
else
{
// pdf파일로 저장합니다.
presentation.SaveAs(targetFilePath, PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);
}
presentation.Close();
presentation = null;
}
else
{
result = RET_VAL.Fail;
}
pptApp.Quit();
pptApp = null;
}
}
catch(Exception ex)
{
if (presentation != null)
{
try
{
presentation.Close();
presentation = null;
}
catch
{
}
}
if (pptApp != null)
{
pptApp.Quit();
pptApp = null;
}
result = RET_VAL.Fail;
}
return result;
}