場景
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);//即保存后打開ExcelSystem.Diagnostics.Process.Start(fileName);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/3548.html
標籤:WinForm
上一篇:"初識".Net Winfom
