Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
场景
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预览并弹出另存为对话框相关推荐
- django之Layui界面点击弹出个对话框并请求逻辑生成分页的动态表格
1.首先,界面上有个按钮触发操作: <button type="button" class="layui-btn layui-btn-normal" id ...
- 控制chrome中PDF预览工具栏
在实际开发中,遇到使用chrome自带的PDF预览功能,前端把后台返回的地址,通过XMLHttpRequest转换成blob,并在blob地址后拼接上文件名称,通过创建embed展示PDF: 这种方法 ...
- vue中pdf预览组件_Vue+ElementUI使用vue-pdf实现预览功能
Vue + ElementUI项目中使用vue-pdf实现简单预览,供大家参考,具体内容如下 1.安装 vue-pdf npm install --save vue-pdf 2.在vue页面中导入对应 ...
- java swt最小化到托盘_SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序...
package com.unmi; import org.eclipse.swt.*; import org.eclipse.swt.events.*; import org.eclipse.swt. ...
- android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...
AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...
- vue 项目中实现pdf预览 pdf打印 pdf下载
在Vue项目中实现PDF预览.打印和下载可以通过以下步骤来实现: 安装pdf.js pdf.js是一个JavaScript库,可以用于在Web上渲染PDF文件. 可以使用npm安装pdf.js,命令如 ...
- wpf 点击按钮弹出新对话框_wpf弹出输入对话框
(WINDOWPLACEMENT); wp.flags=WPF_RESTORET... 菜单项,打开新建项目对话框如图1.1. 在模板(T) 列表框中选择Windows窗体应用程序 ,在名称(N) 编 ...
- tkinter实现弹出输入对话框并获取输入对话框中的值
方法一: import os import cv2 import tkinter from CBC_2 import CBCS from Base64 import BaSe64 from CBC_1 ...
- 手机端点击图片全屏预览
<!doctype html> 手机端点击图片全屏预览 <div class="category"><img src="1.jpg" ...
最新文章
- Windows驱动中的Crash回调
- system文件_大文件拷贝,试试NIO的内存映射
- github上开箱即用的app之TODO app
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)
- tcpsyn发生在哪层_必看面试题之计算机网络:来自一位拿到了腾讯和字节双offer的大佬...
- 【华为云技术分享】实战笔记丨JDBC问题定位指南
- CCNP精粹系列之十三-----OSPF路由汇总
- java解析pom.xml_从pom.xml java获取变量
- 程序员面试金典——11.5找出字符串
- 英语发音规则---W字母
- 事物(二)之客户端事务应答匹配
- 等保二级和等保三级的区别
- matlab创建wps服务器,wps云文档服务器架设(mac版wps云文档在哪)
- waves效果器_waves效果器:《我不是药神》配乐炼成记—Waves访时俊峰黄超
- 大多数计算机有几个cpu,多处理器分配
- 2 什么是计算机网络设置密码,怎么设置电脑网络密码
- 日常计算机网络英语对话,日常话题英语口语
- python如何解析PDF文件
- Linux系统(四)之docker
- cics oracle xad_CICS安装问题与解决方式.doc
热门文章
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
- 「后端小伙伴来学前端了」Vue-Router 路由各种跳转、传参、小知识
- 「后端小伙伴来学前端了」关于 Vue中的 props
- 电脑的基础知识_电脑键盘功能基础知识
- solve函数c语言_数值计算方法编程作业(C语言版)汇总
- qml mousearea 点击其他地方_Qml 快速使用
- 一些debug常用的魔法数值
- h5课件制作_一个好的h5交互课件该怎么制作
- git bash here创建项目无法选择m_你应该知道的10个Git命令
- java二维数组高纬低纬_2018-05-17 第十一天