起因于系统报表工具使用的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 报表插件 宽大于高 横向打印失效 解决方案相关推荐

  1. WEB页面导出为Word文档后分页横向打印的方法

    < html >      < HEAD >          < title >WEB页面导出为Word文档后分页&横向打印的方法  </ titl ...

  2. web端ios布局fixed元素软键盘唤起时fixed失效

    在ios上做了一个简单的页面头部置顶底部置顶源码如下: <!DOCTYPE html> <html lang="en"> <head><m ...

  3. 微软的RDLC报表设计小例

    最近正在做微软的RDLC报表(即ReportView),把自己的经验写了来,网络上有个叫蜡人张的博客介绍的还不错,下面开始做一张分组统计的简单报表吧~ (最终图) 一.先建一张报表: 二.设计data ...

  4. 项目中使用RDLC报表

    原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...

  5. web端实现rtsp实时推流视频播放可行性方案分析

    1.webrtc 1.1 什么是WebRTC 百度概念:WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下 ...

  6. finereport mysql 插件,web报表插件领导品牌FineReport

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

  7. Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)

    作品介绍:把家政带入互联网,这也不算什么新鲜事了.这几年来,在手机下单,上门服务已经是常态.如今的消费已经是趋向于智能消费,例如不想做饭就可以叫外卖,出门不想开车就叫网约车.衣食住行可以靠一部智能手机 ...

  8. Axure 经典实例高保真原型下载(Axure高保真酒店管理交互组件连锁酒店erp酒店企业web端后台管理财务管理会员管理网销管理报表管理))

    作品介绍:Axure高保真酒店管理交互组件&连锁酒店erp&酒店企业web端后台管理&财务管理&会员管理&网销管理&报表管理 Axure原型演示及下载地 ...

  9. java对接海康威视SDK(win64、linux64),处理播放实时流转码,按时间回放功能,附海康威视最新3.0摄像头监控web端实例+插件

    java对接海康威视SDK(win64.linux64),处理播放实时流转码,按时间回放功能 准备工作 遇到的坑 调用步骤 参数配置 DeviceEnums 初始化sdk 注册 大华的sdk叫登陆海康 ...

最新文章

  1. x-pack watch邮件报警配置
  2. 说说项目从0-1过程中的那点事儿
  3. linux webrtc浏览器,WebRTC 浏览器支持
  4. 阿里云短信发送触发天级流量及解决办法
  5. PLSQL DEVELOPER 使用技巧
  6. Exact跻身全球发展最快的云企业行列
  7. Nginx负载均衡策略之ip_hash
  8. 机器学习基础——支持向量机
  9. Duilib编辑框Edit输入完自动跳到下一个编辑框
  10. MySQL:Innodb page clean 线程 (二) :解析
  11. 什么是Shell、Shell脚本
  12. python绘制饼图双层_如何在python中绘制双变量数据的饼图?
  13. “iPhone 3 年内必死!”
  14. inittab 分析
  15. mysql密码修改无效后,修改方法
  16. 曼彻斯特编码_网络工程师考点集锦(数字编码和编码效率)
  17. 计算机主机有自带的声音吗,台式电脑主机前面的插孔没声音怎么回事?如何解决?...
  18. 新版gsp计算机系统全套资料,新版GSP对计算机系统的需求表
  19. linux不识别指纹仪,ubuntu t43指纹仪安装
  20. 位置不可用无法访问介质受写入保护怎么修复?

热门文章

  1. .net Core 介绍
  2. 多层动态库的编译及使用
  3. 根据域名实现前端主题换肤的解决方案
  4. 富文本编辑器 CKeditor 配置使用
  5. USACO Section2.1 Hamming Codes 解题报告 【icedream61】
  6. JqGrid3.6最终版本今天发布了
  7. FPGA原语类型介绍
  8. oracle脏块,检查点队列上的最早脏的数据块再次被修改以何种顺序刷到磁盘
  9. 【AD】如何将喜欢的图案导出成为丝印层和PCB形状
  10. netlink 学习笔记 3.8.13内核