Spire.Office是一個國產的文檔管理、操作類庫,.NET和Java類庫都是非可視化實現相關功能(純后端),那么Spire.Doc在Winform中建立可視化的Doc文檔預覽、打印、PDF轉換功能是怎么搞定的,今天花了幾分鍾嘗試了下,還不錯。
最終實現的效果,帶了點文控的功能
官方給的實現方法太麻煩,我精簡了一下,需要的朋友可以下個Spire.DocViewer類庫試一下。
using Spire.DocViewer.Forms; //加載類庫 //在Load方法里直接實例化功能,並綁定其在界面中的位置 DocViewer docViewer = new DocViewer(); try { docViewer.Parent = this; //在大多數情況下,您的Winform界面應該存在Panel、GroupBox等,您可以直接將其綁定,避免盲猜位置 docViewer.Dock = DockStyle.Fill;//在父窗體中的拉伸效果 // 預讀一個文件 docViewer.LoadFromFile(@"C:\Users\heyue\Desktop\20-21-9對比.doc"); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
這個功能一般會應用於企業OA、ERP、文控系統中,因為一些電子合同、審批文件、加密文件等都會因為保密和便捷的原則被上傳企業相關系統中,如果通過下載實現反復使用也就不能保證上述需求了。
同時在使用Doc文件閱讀器的時候,往往會與OA、ERP、文控系統中的賬號權限、業務需求綁定,實現Office軟件和WPS內無法與業務系統集成的功能需要搭配Spire.Office里面的各種類庫!
除上述代碼外,我們還可以通過屬性直接在Winform窗體中繪制,不過在我看來還是在窗體中構建父級容器比較方便:
docViewer.IsToolBarVisible = true; // 工具欄是否可視 docViewer.Location = new System.Drawing.Point(0, 0); //在窗體中的偏移量 docViewer.Name = "docViewer1"; docViewer.Size = new System.Drawing.Size(792, 573); // 閱讀器的大小 docViewer.TabIndex = 0; docViewer.Text = "docViewer1";