在一般的管理系統模組裡面,越來越多的設計到一些常用文件的上傳儲存操作,其中如PDF、Word、Excel等文件,有時候是透過分散式的WCF技術實現資料的顯示和處理,因此希望直接預覽而不需要下載檔案,這樣能夠給我們提供很多的方便。在DevExpress裡面,提供了相應的控制元件來顯示和處理這些文件,本文主要介紹如何利用DevExpress的控制元件實現對PDF、Word、Excel文件的預覽和操作處理。 1、PDF的預覽和操作 在較早的DevExpress的控制元件裡面,已經提供了對應的PDF文件的顯示控制元件,不過由於其對PDF格式支援不是很好,有些文件是Office匯出的,也不是很正常閱讀,因此很少使用,本文介紹的DevExpress的PDF檢視控制元件是基於14.1的,測試過很多文件,好像都能正常開啟,因此也想在系統中廣泛使用了。 為了演示這些控制元件的處理,我單獨編寫了一個例子,用來實現對PDF、Word、Excel等文件的處理。 為了顯示PDF文件,我們需要在介面裡面新增一個
XtraPdfViewer.PdfViewer
pdfViewer1.DocumentChanged
DevExpress.XtraPdfViewer.PdfDocumentChangedEventArgs
在一般的管理系統模組裡面,越來越多的設計到一些常用文件的上傳儲存操作,其中如PDF、Word、Excel等文件,有時候是透過分散式的WCF技術實現資料的顯示和處理,因此希望直接預覽而不需要下載檔案,這樣能夠給我們提供很多的方便。在DevExpress裡面,提供了相應的控制元件來顯示和處理這些文件,本文主要介紹如何利用DevExpress的控制元件實現對PDF、Word、Excel文件的預覽和操作處理。 1、PDF的預覽和操作 在較早的DevExpress的控制元件裡面,已經提供了對應的PDF文件的顯示控制元件,不過由於其對PDF格式支援不是很好,有些文件是Office匯出的,也不是很正常閱讀,因此很少使用,本文介紹的DevExpress的PDF檢視控制元件是基於14.1的,測試過很多文件,好像都能正常開啟,因此也想在系統中廣泛使用了。 為了演示這些控制元件的處理,我單獨編寫了一個例子,用來實現對PDF、Word、Excel等文件的處理。 為了顯示PDF文件,我們需要在介面裡面新增一個
XtraPdfViewer.PdfViewer
的控制元件,這個主要是用來顯示PDF的,它有很多屬性方法,用來實現對PDF的處理操作,測試介面設計好如下所示。 對PDF,我們一般主要是用來開啟檔案,另存為,或者預覽就可以了。相關的操作程式碼如下所示。/// public partial class PDFViewer : Form { //記錄窗體的名稱 readonly string mainFormText; public PDFViewer() { InitializeComponent(); //記錄窗體的名稱,並實現文件變化事件的處理,方便顯示新的檔名稱 mainFormText = this.Text;pdfViewer1.DocumentChanged
+= new DevExpress.XtraPdfViewer.PdfDocumentChangedEventHandler(pdfViewer1_DocumentChanged); } /// void pdfViewer1_DocumentChanged(object sender,DevExpress.XtraPdfViewer.PdfDocumentChangedEventArgs
e) { string fileName = Path.GetFileName(e.DocumentFilePath); if (String.IsNullOrEmpty(fileName)) { Text = mainFormText; } else { Text = fileName + " - " + mainFormText; } } /// <summary> /// 開啟PDF檔案 /// </summary> private void btnOpenFile_Click(object sender, EventArgs e) { string filePath = FileDialogHelper.OpenPdf(); if (!string.IsNullOrEmpty(filePath)) { this.pdfViewer1.LoadDocument(filePath); } } /// <summary> /// 另存為PDF檔案 /// </summary> private void btnSaveAs_Click(object sender, EventArgs e) { string dir = System.Environment.CurrentDirectory; string filePath = FileDialogHelper.SavePdf("", dir); if (!string.IsNullOrEmpty(filePath)) { try { this.pdfViewer1.SaveDocument(filePath); MessageUtil.ShowTips("儲存成功"); } catch (Exception ex) { LogTextHelper.Error(ex); MessageUtil.ShowError(ex.Message); } } } /// <summary> /// PDF檔案列印 /// </summary> private void btnPreview_Click(object sender, EventArgs e) { this.pdfViewer1.Print(); } }