2014-06-17 4 views
1

"내용"이라는 레이블이 붙어있는 탭이있는 메 너스 립이 있습니다. 내용 탭을 클릭하고 내용을 나열하는 pdf 파일이있는 팝업 창이 나타나길 원합니다. 바탕 화면에 저장된 내용을 나열하는 pdf 파일이 있습니다. 콘텐츠 탭을 클릭하면 pdf 파일이 열리도록이 PDF 파일을 Visual Studio에 추가 할 수 있습니까?Visual Studio에 pdf 파일 추가

OpenFileDialog를 사용하는 등 내 컴퓨터에서 파일을 검색하고 싶지 않습니다. 목차 탭을 클릭하고 pdf 파일이있는 창을 열어보고 싶습니다.

+0

Visual Studio 사용자 지정을 하시겠습니까? 아니면 작성중인 프로그램에서 PDF 파일을 열길 원하십니까? – uncoder

+0

PDF 파일을 열어 쓰고 싶은 프로그램을 원합니다. – user3738170

+0

원본 코드를 보지 않고 기존 코드베이스를 변경하는 방법을 알 수 없습니다. 변경해야 할 것에 대한 최소한의 예를 게시하고 (http://stackoverflow.com/help/mcve), 수정해야 할 것이 무엇인지 충분히 설명하십시오. – gunr2171

답변

1

여러 가지 방법이 있습니다.

1) PC에서 Adobe Reader와 같은 PDF 파일의 기본 등록 뷰어를 열어 PDF 파일의 전체 경로를 매개 변수로 전달하는 응용 프로그램에서 프로세스를 시작하는 것이 하나의 방법입니다 (

). 당신이 경로를 알고 있으면

http://www.pinvoke.net/default.aspx/shlwapi/AssocQueryString.html

string execPath = GetAssociation(".pdf"); 

: 여기

당신은 파일 확장자 (귀하의 경우 ".PDF")하여 기본 핸들러 응용 프로그램의 경로를 결정하기 위해 호를 찾을 수 있습니다 실행 파일을 실행할 수 있습니다. 매개 변수로 당신의 PDF 파일의 경로를 토륨 :

using System.Diagnostics; 
... 
// Start new process 
Process.Start(execPath, "C:\\myfile.pdf").WaitForExit(0); 

2) 또 다른 방법은 응용 프로그램에서 Windows 폼을 작성하고 웹 브라우저 컨트롤을 추가하는 것입니다. 그런 다음 웹 브라우저 컨트롤을 프로그래밍 방식으로 특정 PDF 파일로 "탐색"할 수 있습니다. 이는 인터넷 익스플로러가 이미 Adobe Reader와 같은 창을 인라인 첨부 파일로 사용하여 PDF 파일을 표시 할 수 있다고 가정합니다.

프로젝트의 참조를 Microsoft Internet Controls 1.1 (참조> 참조 추가를 마우스 오른쪽 단추로 클릭하십시오. ..> COM). 다음

private AxSHDocVw.AxWebBrowser axWebBrowser; 

... 

private void InitializeWebControl() 
{ 
    this.SuspendLayout(); 

    this.axWebBrowser = new AxSHDocVw.AxWebBrowser(); 
    ((ISupportInitialize)(this.axWebBrowser)).BeginInit(); 
    this.axWebBrowser.Anchor = ((AnchorStyles)((((AnchorStyles.Top | AnchorStyles.Bottom) 
    | AnchorStyles.Left) 
    | AnchorStyles.Right))); 
    this.axWebBrowser.Enabled = true; 
    this.axWebBrowser.Location = this.panelPdfViewer.Location; 
    this.axWebBrowser.Size = this.panelPdfViewer.Size; 
    ((ISupportInitialize)(this.axWebBrowser)).EndInit(); 
    this.axWebBrowser.Visible = false; 

    this.Controls.Add(this.axWebBrowser); 

    this.ResumeLayout(false); 
} 

과 :

// Clear browser 
object blank = "about:blank"; 
this.axWebBrowser.Navigate2(ref blank); 

// Display file 
object loc = "file:///" + System.IO.Path.GetFullPath(fileName).Replace('\\', '/'); 
object null_obj_str = null; 
object null_obj = null; 
this.axWebBrowser.Navigate2(ref loc, ref null_obj, ref null_obj, ref null_obj_str, ref null_obj_str); 

3) 세 번째 방법이 할 수있는 타사 컨트롤 라이브러리를 사용하는 양식 코드에서

(여기 panePdfViewer는 자리 System.Windows.Forms.Panel 컨트롤입니다) PDF 파일을 표시합니다.

관련 문제