Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
場景
FastReport安裝包下載、安裝、去除使用限制以及工具箱中添加控件:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100893794
Winform中使用FastReport實現(xiàn)簡單的自定義PDF導(dǎo)出:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100920681
參照上面實現(xiàn)使用FastReport導(dǎo)出PDF的實現(xiàn)后。
如果要在點(diǎn)擊導(dǎo)出按鈕后同時進(jìn)行PDF預(yù)覽并彈出另存為對話框。
效果如下:
?
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。
實現(xiàn)
新建窗體并拖拽一個button和FastReport的PreviewControl
?
在button的點(diǎn)擊事件中
首先加載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進(jìn)行賦值
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進(jìn)行設(shè)置照片源
var graph = report.FindObject("Picture2") as PictureObject; //獲取圖像 System.Drawing.Image image = MainViewContent.mainViewContent.zedGraphControl1.GetImage(); //照片旋轉(zhuǎn)90度 image.RotateFlip(RotateFlipType.Rotate90FlipNone); graph.Image = image;綁定并顯示預(yù)覽窗口
//綁定預(yù)覽控件 不然會彈出新的窗口 report.Preview = this.previewControl1;? //顯示預(yù)覽窗口 report.Prepare(); report.ShowPrepared();顯示另存為窗口
//顯示另存為窗口 SaveFileDialog saveDialog = new SaveFileDialog(); //設(shè)置默認(rèn)文件擴(kuò)展名。 saveDialog.DefaultExt = "pdf"; //設(shè)置當(dāng)前文件名篩選器字符串,該字符串決定對話框的“另存為文件類型”或“文件類型”框中出現(xiàn)的選擇內(nèi)容。 saveDialog.Filter = "pdf文件|*.pdf"; //設(shè)置文件名 saveDialog.FileName = fileName; //用默認(rèn)的所有者運(yùn)行通用對話框。 saveDialog.ShowDialog(); //如果修改了文件名,用對話框中的文件名名重新賦值 fileName = saveDialog.FileName; //被點(diǎn)了取消 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);?
總結(jié)
以上是生活随笔為你收集整理的Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Winform中使用FastReport
- 下一篇: Winform中使用控件的Dock属性设