场景

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预览并弹出另存为对话框相关推荐

  1. django之Layui界面点击弹出个对话框并请求逻辑生成分页的动态表格

    1.首先,界面上有个按钮触发操作: <button type="button" class="layui-btn layui-btn-normal" id ...

  2. 控制chrome中PDF预览工具栏

    在实际开发中,遇到使用chrome自带的PDF预览功能,前端把后台返回的地址,通过XMLHttpRequest转换成blob,并在blob地址后拼接上文件名称,通过创建embed展示PDF: 这种方法 ...

  3. vue中pdf预览组件_Vue+ElementUI使用vue-pdf实现预览功能

    Vue + ElementUI项目中使用vue-pdf实现简单预览,供大家参考,具体内容如下 1.安装 vue-pdf npm install --save vue-pdf 2.在vue页面中导入对应 ...

  4. java swt最小化到托盘_SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序...

    package com.unmi; import org.eclipse.swt.*; import org.eclipse.swt.events.*; import org.eclipse.swt. ...

  5. android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...

    AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...

  6. vue 项目中实现pdf预览 pdf打印 pdf下载

    在Vue项目中实现PDF预览.打印和下载可以通过以下步骤来实现: 安装pdf.js pdf.js是一个JavaScript库,可以用于在Web上渲染PDF文件. 可以使用npm安装pdf.js,命令如 ...

  7. wpf 点击按钮弹出新对话框_wpf弹出输入对话框

    (WINDOWPLACEMENT); wp.flags=WPF_RESTORET... 菜单项,打开新建项目对话框如图1.1. 在模板(T) 列表框中选择Windows窗体应用程序 ,在名称(N) 编 ...

  8. tkinter实现弹出输入对话框并获取输入对话框中的值

    方法一: import os import cv2 import tkinter from CBC_2 import CBCS from Base64 import BaSe64 from CBC_1 ...

  9. 手机端点击图片全屏预览

    <!doctype html> 手机端点击图片全屏预览 <div class="category"><img src="1.jpg" ...

最新文章

  1. Windows驱动中的Crash回调
  2. system文件_大文件拷贝,试试NIO的内存映射
  3. github上开箱即用的app之TODO app
  4. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
  5. tcpsyn发生在哪层_必看面试题之计算机网络:来自一位拿到了腾讯和字节双offer的大佬...
  6. 【华为云技术分享】实战笔记丨JDBC问题定位指南
  7. CCNP精粹系列之十三-----OSPF路由汇总
  8. java解析pom.xml_从pom.xml java获取变量
  9. 程序员面试金典——11.5找出字符串
  10. 英语发音规则---W字母
  11. 事物(二)之客户端事务应答匹配
  12. 等保二级和等保三级的区别
  13. matlab创建wps服务器,wps云文档服务器架设(mac版wps云文档在哪)
  14. waves效果器_waves效果器:《我不是药神》配乐炼成记—Waves访时俊峰黄超
  15. 大多数计算机有几个cpu,多处理器分配
  16. 2 什么是计算机网络设置密码,怎么设置电脑网络密码
  17. 日常计算机网络英语对话,日常话题英语口语
  18. python如何解析PDF文件
  19. Linux系统(四)之docker
  20. cics oracle xad_CICS安装问题与解决方式.doc

热门文章

  1. java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
  2. 「后端小伙伴来学前端了」Vue-Router 路由各种跳转、传参、小知识
  3. 「后端小伙伴来学前端了」关于 Vue中的 props
  4. 电脑的基础知识_电脑键盘功能基础知识
  5. solve函数c语言_数值计算方法编程作业(C语言版)汇总
  6. qml mousearea 点击其他地方_Qml 快速使用
  7. 一些debug常用的魔法数值
  8. h5课件制作_一个好的h5交互课件该怎么制作
  9. git bash here创建项目无法选择m_你应该知道的10个Git命令
  10. java二维数组高纬低纬_2018-05-17 第十一天