web端 微软 RDLC 报表插件 宽大于高 横向打印失效 解决方案
起因于系统报表工具使用的RDLC,本地测试一直使用的纵向打印,未测试过横向打印?。
甲方提供的打印机为HP1106,支持纵向打印,但!领导要求必须横向打印?,因此还拖延了实施进度?。
先总结一下遇到的问题
微软官方RDLC报表工具使用起来不太方便,也因单据复杂度而异。
在遇到这个问题时上网搜索发现,一致认为此问题为BUG,在CS端可以解决,但是BS端未提供解决方案。
但是搜索时大部分文章标题为”RDLC宽大于高 横向打印失效“或反之。
于是将计就计,我的报表为A5横向,改为A4纵向,这样打印时可打印A5横向。
此行为纯属偷懒行为,若觉得不可用,可将解决方案分享或换一个报表工具。
我的代码如下
/// <summary>/// RDLC报表帮助类/// </summary>public static class RDLCHelper{/// <summary>/// 下载打印文件/// </summary>/// <param name="option">报表设置项</param>/// <param name="str_dataSource">报表数据集名称</param>/// <param name="data">数据源</param>/// <param name="renderedBytes">报表二进制流</param>/// <param name="mimeType">报表mimeType</param>public static void DownloadFile<T>(ReportOption option, string str_dataSource, List<T> data, out byte[] renderedBytes, out string mimeType){LocalReport localReport = new LocalReport();localReport.EnableExternalImages = true;localReport.ReportPath = HttpContext.Current.Server.MapPath(option.ReportServerUrl);ReportDataSource reportDataSource = new ReportDataSource(str_dataSource, data);localReport.DataSources.Add(reportDataSource);string encoding;string fileNameExtension;string deviceInfo ="<DeviceInfo>" +"<OutPutFormat>" + option.OutPutFormat + "</OutPutFormat>" +"<PageWidth>" + option.PageWidth + "</PageWidth>" +"<PageHeight>" + option.PageHeight + "</PageHeight>" +"<MarginTop>" + option.MarginTop + "</MarginTop>" +"<MarginLeft>" + option.MarginLeft + "</MarginLeft>" +"<MarginRight>" + option.MarginRight + "</MarginRight>" +"<MarginBottom>" + option.MarginBottom + "</MarginBottom>" +"</DeviceInfo>";Warning[] warnings;string[] streams;renderedBytes = localReport.Render(option.OutPutFormat,deviceInfo,out mimeType,out encoding,out fileNameExtension,out streams,out warnings);}/// <summary>/// 报表设置项/// </summary> public class ReportOption{/// <summary>/// 报表文件路径/// </summary>public string ReportServerUrl { get; set; }/// <summary>/// 文件类型/// </summary>public string OutPutFormat { get; set; }/// <summary>/// 页宽,不包含单位(cm厘米,in英寸)/// </summary>public string PageWidth { get; set; }/// <summary>/// 页高,不包含单位(cm厘米,in英寸)/// </summary>public string PageHeight { get; set; }/// <summary>/// 外边距顶部值,设计页面外部累加值,不包含单位(cm厘米,in英寸)/// </summary>public string MarginTop { get; set; }/// <summary>/// 外边距底部值,设计页面外部累加值,不包含单位(cm厘米,in英寸)/// </summary>public string MarginBottom { get; set; }/// <summary>/// 外边距左部值,设计页面外部累加值,不包含单位(cm厘米,in英寸)/// </summary>public string MarginLeft { get; set; }/// <summary>/// 外边距右部值,设计页面外部累加值,不包含单位(cm厘米,in英寸)/// </summary>public string MarginRight { get; set; }}}
RDLC报表帮助类
public ActionResult Print(string DEVICE_ID, string type){List<bill> bill = new List<bill>();RDLCHelper.ReportOption option = new RDLCHelper.ReportOption{ReportServerUrl = "~/Template/bill.rdlc",OutPutFormat = type,PageWidth = "21cm",//注意此处设置的A4纵向格式PageHeight = "29.7cm",//但实际报表为A5横向MarginTop = "0cm",MarginBottom = "0cm",MarginLeft = "0cm",MarginRight = "0cm"};byte[] renderedBytes;string mimeType;RDLCHelper.DownloadFile(option, "billData", bill, out renderedBytes, out mimeType);return File(renderedBytes, mimeType);}
MVC后端方法
function Print() {window.open("/bbbb/billm/bill?type=pdf&DEVICE_ID=" + DeviceId , 'newwindow', 'height=800, width=1200, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no'); }
前端页面代码
转载于:https://www.cnblogs.com/GoCircle/p/10949422.html
web端 微软 RDLC 报表插件 宽大于高 横向打印失效 解决方案相关推荐
- WEB页面导出为Word文档后分页横向打印的方法
< html > < HEAD > < title >WEB页面导出为Word文档后分页&横向打印的方法 </ titl ...
- web端ios布局fixed元素软键盘唤起时fixed失效
在ios上做了一个简单的页面头部置顶底部置顶源码如下: <!DOCTYPE html> <html lang="en"> <head><m ...
- 微软的RDLC报表设计小例
最近正在做微软的RDLC报表(即ReportView),把自己的经验写了来,网络上有个叫蜡人张的博客介绍的还不错,下面开始做一张分组统计的简单报表吧~ (最终图) 一.先建一张报表: 二.设计data ...
- 项目中使用RDLC报表
原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...
- web端实现rtsp实时推流视频播放可行性方案分析
1.webrtc 1.1 什么是WebRTC 百度概念:WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下 ...
- finereport mysql 插件,web报表插件领导品牌FineReport
阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...
- Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)
作品介绍:把家政带入互联网,这也不算什么新鲜事了.这几年来,在手机下单,上门服务已经是常态.如今的消费已经是趋向于智能消费,例如不想做饭就可以叫外卖,出门不想开车就叫网约车.衣食住行可以靠一部智能手机 ...
- Axure 经典实例高保真原型下载(Axure高保真酒店管理交互组件连锁酒店erp酒店企业web端后台管理财务管理会员管理网销管理报表管理))
作品介绍:Axure高保真酒店管理交互组件&连锁酒店erp&酒店企业web端后台管理&财务管理&会员管理&网销管理&报表管理 Axure原型演示及下载地 ...
- java对接海康威视SDK(win64、linux64),处理播放实时流转码,按时间回放功能,附海康威视最新3.0摄像头监控web端实例+插件
java对接海康威视SDK(win64.linux64),处理播放实时流转码,按时间回放功能 准备工作 遇到的坑 调用步骤 参数配置 DeviceEnums 初始化sdk 注册 大华的sdk叫登陆海康 ...
最新文章
- x-pack watch邮件报警配置
- 说说项目从0-1过程中的那点事儿
- linux webrtc浏览器,WebRTC 浏览器支持
- 阿里云短信发送触发天级流量及解决办法
- PLSQL DEVELOPER 使用技巧
- Exact跻身全球发展最快的云企业行列
- Nginx负载均衡策略之ip_hash
- 机器学习基础——支持向量机
- Duilib编辑框Edit输入完自动跳到下一个编辑框
- MySQL:Innodb page clean 线程 (二) :解析
- 什么是Shell、Shell脚本
- python绘制饼图双层_如何在python中绘制双变量数据的饼图?
- “iPhone 3 年内必死!”
- inittab 分析
- mysql密码修改无效后,修改方法
- 曼彻斯特编码_网络工程师考点集锦(数字编码和编码效率)
- 计算机主机有自带的声音吗,台式电脑主机前面的插孔没声音怎么回事?如何解决?...
- 新版gsp计算机系统全套资料,新版GSP对计算机系统的需求表
- linux不识别指纹仪,ubuntu t43指纹仪安装
- 位置不可用无法访问介质受写入保护怎么修复?