2009년 7월 2일 목요일

WPF PDFViewer

WPF를 이용하여 PDF 파일 리더(?) 뷰어(?) 를 만들어보았다.

일단은 실행화면입니다. PDF리더가 깔려있을경우 PDF파일을 실행했을때 나오는 화면과 같은 화면입니다. 뷰어일뿐이니까요..

 

자 그럼 WPF로 위의 것을 만드는 방법입니닷..

일단.. PDF파일을 가지고 놀려면 라이브러리가 필요합니다. ActiveX

참조해야하는것은 아래의 스샷을 통해서 하시면 됩니다.

스샷이미지가 잘 안보이실테니 이미지를 클릭하여 보세요.

 

참조가 다 끝난후에는 이제 프로젝트에 새항목을 usercontrol로 추가합니다.

이때 usercontrol은 Form으로 합니다

이유라면.. WPF 창에서는 바로 PDF뷰어를 불러올수없는 이유랄까요..;; WPF가 허용하지 않은

ActiveX는.. 유저컨트롤을 이용하여 윈도우창에 호스팅하는방법을 사용하여야 합니다.

이방법을 사용한다면 예전의 WPF에서 HWPViewer도 만들수 있을것 같네욤..

아무튼..;;

UserControl의 디자인 화면에서 도구상자에 항목선택을 하여 위의 참조하는 3번째 것을 해주시면

Adobe PDF Reader라는 도구사 도구상자에 생길겁니다. 그것을 드래그하여 UserControl로 놓아주면 됩니다. 여기서.. PDF Reader의 Dock는 Fill로 하여야합니다.. Dock 설정을 안하시면 윈도우창은 큰데 혼자노는 작은화면의 PDF Reader가 생성될것입니다.

 

UserControl의 cs인 코드에 다음과 같이 추가합니다.

  public UserControl1(string filename)
  {
       InitializeComponent();

       this.axAcroPDF1.LoadFile(filename);

  }

즉 생성자로 파일이름을 받고 그것으로 로드하는것입니다.

 

이제 WPF의 윈도우 창으로 와서 아래와 같은 코드를 추가합니다.

  public Window1()
  {
       InitializeComponent();

       var uc = new UserControl1(@"c:\test.pdf");

       this.windowsFormsHost1.Child = uc;
  }

Xaml에는 도구상자에서 WindowFromHost를 추가하여 주시면됩니다.

 

그럼 실행해보시면 잘되실겁니다.

 

- var이 무엇인가..?

http://msdn.microsoft.com/ko-kr/library/bb384061.aspx <- 참고

 

소스 첨부하도록 하겠습니다.

 

 

 

댓글 없음:

댓글 쓰기