Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
生活随笔
收集整理的這篇文章主要介紹了
Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
FastReport安裝包下載、安裝、去除使用限制以及工具箱中添加控件:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100893794
Winform中使用FastReport實現簡單的自定義PDF導出:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100920681
參照上面實現使用FastReport導出PDF的實現后。
如果要在點擊導出按鈕后同時進行PDF預覽并彈出另存為對話框。
效果如下:
?
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
新建窗體并拖拽一個button和FastReport的PreviewControl
?
在button的點擊事件中
首先加載frm模板文件
Report report = new Report(); //獲取項目目錄 string baseDir = System.Windows.Forms.Application.StartupPath; //拼接模板文件目錄 var reportFile = Path.Combine(baseDir + @"\data\Report", "ExportPDF.frx"); //先清理一下 report.Clear(); //然后加載模板文件 report.Load(reportFile);對模板中的TextObject進行賦值
foreach (Control ctl in this.panelControl1.Controls){string[] strs = ctl.Name.Split('_');if (strs.Length > 1){string changeText = null;if (strs[1].Equals("Date")){//日期處理DateEdit dateEdit = ctl as DateEdit;DateTime date = (DateTime)dateEdit.EditValue;changeText = date.ToLongDateString().ToString();}else if (strs[1].Equals("Time")){//時間處理TimeEdit dateEdit = ctl as TimeEdit;DateTime time = (DateTime)dateEdit.EditValue;changeText = time.ToLongTimeString().ToString();}else{changeText = ctl.Text;}//找到 Name屬性為T的控件var t = report.FindObject("Text_" + strs[1]) as TextObject;if (t != null){//修改控件值t.Text = changeText;}}}對模板中的圖片控件PictureObject進行設置照片源
var graph = report.FindObject("Picture2") as PictureObject; //獲取圖像 System.Drawing.Image image = MainViewContent.mainViewContent.zedGraphControl1.GetImage(); //照片旋轉90度 image.RotateFlip(RotateFlipType.Rotate90FlipNone); graph.Image = image;綁定并顯示預覽窗口
//綁定預覽控件 不然會彈出新的窗口 report.Preview = this.previewControl1;? //顯示預覽窗口 report.Prepare(); report.ShowPrepared();顯示另存為窗口
//顯示另存為窗口 SaveFileDialog saveDialog = new SaveFileDialog(); //設置默認文件擴展名。 saveDialog.DefaultExt = "pdf"; //設置當前文件名篩選器字符串,該字符串決定對話框的“另存為文件類型”或“文件類型”框中出現的選擇內容。 saveDialog.Filter = "pdf文件|*.pdf"; //設置文件名 saveDialog.FileName = fileName; //用默認的所有者運行通用對話框。 saveDialog.ShowDialog(); //如果修改了文件名,用對話框中的文件名名重新賦值 fileName = saveDialog.FileName; //被點了取消 if (fileName.IndexOf(":") < 0) return; FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport(); report.Export(export, fileName); //即保存后打開Excel System.Diagnostics.Process.Start(fileName);?
總結
以上是生活随笔為你收集整理的Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Winform中使用FastReport
- 下一篇: Winform中使用控件的Dock属性设