본문 바로가기
C#

한글문서를 PDF로 변환해보려는 별난 시도

by edupicker(체르니) 2010. 7. 29.

음. 요사이 각종 문서 형태를 PDF 형태로 변환하는 놀이가 은근히 재미가 있어서 한글(hwp) 파일도 가능하지 않을까해서 COM을 이용해서 작업을 해보았는데 레퍼런스가 없다보니 한글 문서를 열다가 에러가 떨어져 중단한 상태입니다. 나중에 시간나면 다른 각도에서 접근해볼 생각인데 그 재미있는 삽질기를 올립니다.

using HwpObjectLib;

        private object paramMissing = Type.Missing;
       private HwpObjectLib.HwpObjectClass myHwp;
     

        private void button1_Click(object sender, EventArgs e)
       {
           OpenFileDialog myFileDialog = new OpenFileDialog();
           myFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
           myFileDialog.Filter = "한글 Files|*.hwp|All Files|*.*";
           myFileDialog.FilterIndex = 1;
           if (myFileDialog.ShowDialog(this) == DialogResult.Cancel)
               return;

            try
           {
               myHwp = new HwpObjectClass();

                string filename=myFileDialog.FileName;
               object Format = paramMissing;
               object arg = paramMissing;
               myHwp.Open(filename, Format, arg);

                //PDF 저장할 위치 및 파일 이름 설정
               SaveFileDialog saveScreenshot = new SaveFileDialog();
               saveScreenshot.Filter = "hwp Files (*.hwp)|*.hwp|PDF Files(*.pdf)|*.pdf|All files (*.*)|*.*";
               saveScreenshot.Title = "다른 이름으로 저장...";
               saveScreenshot.FilterIndex = 2;
               saveScreenshot.InitialDirectory = Application.StartupPath;
               saveScreenshot.RestoreDirectory = true;

                if (saveScreenshot.ShowDialog() == DialogResult.OK)
                   myHwp.SaveAs(saveScreenshot.FileName, paramMissing, paramMissing);                   
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.ToString());
           }
           finally
           {
               myHwp.Quit();                
           }
       }

한글을 PDF로 변환해주는 것은 한글의 자체 기능으로 제공하기 때문에 C#과 같은 프로그래밍 언어에서 접근은 막아둔 것 같다는 느낌이 들긴 합니다. 대개 COM을 이용하면 해당 응용 프로그램에서 제공하는 기능을 프로그래밍 수준에서 접근이 가능한데 아쉽더군요.
참고로 C#을 이용하여 COM 형태로 접근하는 방법을 알고 싶으신 분은 영진닷컴에서 다음달 초에 나오는 제 책을 참고하시길 바랍니다. 책에 대한 간략한 소개는 교보문고, 예스 24, 인터파크에 있습니다.

교보문고
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788931440133&orderClick=LAH

예스 24

http://www.yes24.com/24/goods/4058464

인터파크
http://book.interpark.com/product/BookDisplay.do?_method=Detail&sc.shopNo=0000400000&dispNo=&sc.prdNo=205162369

그럼  잠시동안 HWP로 작업했었던 즐거운 프로그래밍 놀이를 마칩니다.