場景 FastReport安裝包下載、安裝、去除使用限制以及工具箱中添加控制項: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100893794 Winform中使用FastReport實現簡單的自定義PDF導出: https:/ ...
場景
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);