여러 가지 방법이 있습니다.
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 파일을 표시합니다.
Visual Studio 사용자 지정을 하시겠습니까? 아니면 작성중인 프로그램에서 PDF 파일을 열길 원하십니까? – uncoder
PDF 파일을 열어 쓰고 싶은 프로그램을 원합니다. – user3738170
원본 코드를 보지 않고 기존 코드베이스를 변경하는 방법을 알 수 없습니다. 변경해야 할 것에 대한 최소한의 예를 게시하고 (http://stackoverflow.com/help/mcve), 수정해야 할 것이 무엇인지 충분히 설명하십시오. – gunr2171