CODEKILLER

반응형

▶ 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;
}

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band