Csharp: winform PDF view control use Adobe Reader X
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using AcroPDFLib;//引用COM組件Adobe Acrobat Browser Control Type Library 1.0 //http://www.adobe.com/devnet/acrobat/sdk/eula.html 10 using System.Runtime.InteropServices; 11 12 namespace WindowsChineseCalender 13 { 14 /// <summary> 15 ///安裝 Adobe Reader X 16 /// winform pdf view control 17 /// Geovin Du 塗聚文 18 /// 20121022 19 /// </summary> 20 public partial class PDFviewControlForm : Form 21 { 22 23 [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] 24 static extern uint GetShortPathName( 25 [MarshalAs(UnmanagedType.LPTStr)] string lpszLongPath, 26 [MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpszShortPath, 27 uint cchBuffer); 28 29 /// <summary> 30 /// 31 /// </summary> 32 public PDFviewControlForm() 33 { 34 InitializeComponent(); 35 this.addressLeft.Text = "http://www.dusystem.com/%E4%BD%8F%E6%88%BF%E5%92%8C%E5%9F%8E%E4%B9%A1%E5%BB%BA%E8%AE%BE%E9%83%A8%E7%9D%A3%E5%AF%9F%E5%8A%9E%E5%85%AC%E5%AE%A4201200825.pdf"; 36 37 } 38 /// <summary> 39 /// 40 /// </summary> 41 /// <param name="sender"></param> 42 /// <param name="e"></param> 43 private void PDFviewControlForm_Load(object sender, EventArgs e) 44 { 45 46 } 47 /// <summary> 48 /// 瀏覽本地文件 49 /// 塗聚文 50 /// </summary> 51 /// <param name="sender"></param> 52 /// <param name="e"></param> 53 private void browseButtonLeft_Click(object sender, EventArgs e) 54 { 55 56 OpenFileDialog openFile = new OpenFileDialog(); 57 DialogResult result = openFile.ShowDialog(); 58 59 60 if (result == DialogResult.Cancel) 61 return; 62 63 64 string strFileName = openFile.FileName; 65 66 67 string strFileNameDup = strFileName; 68 if (strFileNameDup.ToUpper().EndsWith(".PDF")) 69 { 70 addressLeft.Text = strFileName; 71 } 72 else 73 MessageBox.Show(this, "請選擇PDF文件!", "文件類型錯誤", MessageBoxButtons.OK, 74 MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); 75 } 76 /// <summary> 77 /// 打開文件 78 /// </summary> 79 /// <param name="sender"></param> 80 /// <param name="e"></param> 81 private void goButtonLeft_Click(object sender, EventArgs e) 82 { 83 if (0 == addressLeft.Text.Length) 84 MessageBox.Show(this, "輸入正解的 \"地址\"比 !", "錯誤提示", 85 MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); 86 if (addressLeft.Text.StartsWith("http://")) 87 pdfWindowLeft.src = addressLeft.Text; //網絡文件地址 88 else 89 { 90 //本地文件 91 StringBuilder shortFileName = new StringBuilder(4096); 92 uint shortFileNameSize = (uint)shortFileName.Capacity; 93 if (GetShortPathName(addressLeft.Text, shortFileName, shortFileNameSize) != 0) 94 pdfWindowLeft.LoadFile(shortFileName.ToString()); 95 else 96 MessageBox.Show(this, "不正確的文件.", "需正確的文件", 97 MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); 98 } 99 } 100 } 101 }
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)