场景

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 > )
{
string changeText = null;
if (strs[].Equals("Date"))
{
//日期处理
DateEdit dateEdit = ctl as DateEdit;
DateTime date = (DateTime)dateEdit.EditValue;
changeText = date.ToLongDateString().ToString();
}else if (strs[].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[]) 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(":") < ) return;
FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport();
report.Export(export, fileName);
//即保存后打开Excel
System.Diagnostics.Process.Start(fileName);

最新文章

  1. Unity手撸2048小游戏——自动生成4*4棋盘
  2. python---PrettyTable
  3. The prefix &quot;mx&quot; for element &quot;mx:WindowedApplication&quot; is not bound.
  4. CSDN中的Bug
  5. ZOJ 1092 Arbitrage
  6. C++ 类族的设计
  7. win7-64bit 下oracle11g plsql 的正确安装
  8. android 常用调用系统功能
  9. 【错误】undefined reference to `boost::....的解决
  10. MyServer
  11. msp430系统时钟
  12. Beta分布深入理解
  13. IK 中文分词器
  14. Laravel 5.6 视图用Blade语法传递变量和流程控制if 语句和循环语句
  15. 【LeetCode】200. Number of Islands (2 solutions)
  16. RAID常见问题集锦+底部案例
  17. winform 勾选可以改变框控件
  18. flask 蓝图
  19. 安装文件报错error while loading shared libraries: libssl.so.6
  20. 转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类

热门文章

  1. PHP语法入门以及变量
  2. Java之线程与进程
  3. H265之格式解析
  4. centOS服务器安装mongodb
  5. arcgis api for javascript 学习(五) 实现地图绘制工具
  6. -force_load (加载静态库崩溃)
  7. 微信小程序踩坑日记3——上传照片至服务器
  8. 学习springboot第一天~
  9. 2.idea安装JavaCC插件.md
  10. 分布式系统ID的几种生成办法