最近在做一个系统,系统中有一个功能就是用浏览器打印已经配置好的Word文档到本地,这个功能,其实挺简单的,也很好实现。当时我们是用FireFox做的测试,非常简单就实现了。打印效果如下:
在测试兼容性的时候,我们用IE测试出现了问题(其他浏览器基本上兼容),文档名称出现了乱码,如下图所示
出现问题之后,我查了一些资料,发现原来是IE浏览器与需要对中文名称进行编码,然后再显示,就可以了。我们的源代码如下:
public void jianxigongzi(FileWagesViewModel enFileWages)
{
if (Session["userID"]==null) {
RedirectToAction("../Login/Login");
}
//获取模板的路径
var path = Server.MapPath("../Document/1见习工资审批表.doc");
#region 给见习工资审批表的各个参数赋值
string strUserID = Session["userID"].ToString();
//string strUserID = "001";//写死的测试
while (strUserID.Length < 4)
{
strUserID = "0" + strUserID;
}
//获取信函编号
string strCardNo = numberInfo.GetNumber();
while (strCardNo.Length < 4)
{
strCardNo = "0" + strCardNo;
}
string basicInformationNumber = enFileWages.basicInformationNumber;
//获取documentID参数
string number = "LFRC" + strUserID + "No." + strCardNo;
//给word中的表赋值
string name = enFileWages.name;//姓名
string sex = enFileWages.sex;//性别
//调用B层获得出生日期
//FileWagesViewModel resShow = fileWagesInfo.QueryBasicInfo(basicInformationNumber);
List<BasicInfoViewModel> ShowDetileInfores = resBasicres.ShowdetailBasicInfoLetter(basicInformationNumber).ToList();
BasicInfoViewModel resShow = ShowDetileInfores.FirstOrDefault();
string birthday = resShow.birthday == null ? "" : string.Format("{0:D}", Convert.ToDateTime(resShow.birthday));//出生年月
//调用学历中的方法,获得其他的三个字段
//获得学历表中的信息
StudentStatusInfoViewModel enStudentInfo = queryStudentStatus.QueryDetailStudent(basicInformationNumber);
string enter = enStudentInfo.entranceDate == null ? "" : string.Format("{0:D}", Convert.ToDateTime(enStudentInfo.entranceDate));//入学时间
string graduate = enStudentInfo.graduationDate == null ? "" : string.Format("{0:D}", Convert.ToDateTime(enStudentInfo.graduationDate));//毕业时间
string back = enStudentInfo.educationBackground;//学历
string parttime = resShow.workingtime == null ? "" : string.Format("{0:D}", Convert.ToDateTime(resShow.workingtime)); //参加工作的时间
string fileName = "见习工资审批表.doc";//这是文件名,如果不进行编码,直接放在这里,IE就会乱码
string letterType = "见习工资审批表";
string userId = Session["userID"].ToString();
string letterNum = strCardNo;
//获取模板中设定好的字段
String[] fieldNames = new String[] { "number", "name", "sex", "enter", "graduate", "back", "birthday", "parttime" };
//给模版中参数赋值
Object[] fieldValues = new Object[] { number, name, sex, enter, graduate, back, birthday, parttime };
Print(path, fileName, fieldNames, fieldValues);
filterPrint.FilterPrint(basicInformationNumber, letterType, letterNum, userId);
#endregion
}
查到问题之后,我们进行了修改,在打印之前,先判断浏览器,如果是IE , 就对filename进行UTF-8的编码,然后再输出,如果不是,就直接输出,这样问题就解决了。修改代码如下:
string fileName=<span style="font-family: Arial, Helvetica, sans-serif;">"户号6665.doc"</span><span style="font-family: Arial, Helvetica, sans-serif;">;</span>
string UserAgent = Request.ServerVariables["http_user_agent"].ToLower();
if (UserAgent.IndexOf("firefox") == -1) //如果不是火狐浏览器
{
fileName = HttpUtility.UrlEncode(<span style="font-family: Arial, Helvetica, sans-serif;">fileName</span><span style="font-family: Arial, Helvetica, sans-serif;">, Encoding.UTF8);</span>
}
如此一来,就达到了浏览器兼容。
分享到:
相关推荐
5. 兼容IE6 ,火狐浏览器等主流浏览器; 6. 对数据库表的操作,如增删改查操作只需要进行简单的设置即可完成,无需再进行任何编码实现。 自由宿主Asp.net网站通用后台管理系统3.2正式版更新功能: 1.修正edit...
使用说明:粘贴在firefox的plugins目录下。 安装后重启火狐 地址栏输入 about:plugins 打开查看——若有了 {Microsoft? Windows Media Player Firefox Plugin 文件名: np-mswmp.dll np-mswmp} {audio/x-ms-...
3.重写了广告部分的代码,使所有广告形式都支持firefox浏览器。 4.其它细微的功能调整及浏览器兼容。 修改了如下问题 1.修正了新闻全部清空时不能正常显示的问题。 2.后台删除vip会员时失败的问题。 ...
注:IE6/7/8锁定表头 由于兼容性问题,有些情况下会有一些错位的问题 1.5 增加了 显示/隐藏功能,修正了非IE浏览器下列宽错位问题 1.6 修正了当有合并单元格时,锁定单元格错位的问题,修正了表格行数较多时的...
3)修正firefox下与jquery不兼容问题! 4)修正firefox下脚本的一些问题! 5)修正firefox3.0以上版本浏览控件界面显示不正确的问题! 2008/10/23 Version 5.0.8 For VS2005/2008 Updates: 1)增加了上传功能中重命名...
并且完美兼容ie9,ie10,ie11,谷歌浏览器,搜狗浏览器,火狐浏览器,360浏览器6.优化内部代码,更加兼容搜索引擎,并且完美无漏洞7. 界面优化,虽然仍旧是丑的无法直视,但是比前几代强了不少8. 用到的核心代码:...
[关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data...
Microsoft Edge 和 Google Chrome 的自动重命名现在...兼容性此扩展主要针对 Microsoft Edge (Chromium) 和 Google Chrome 浏览器。 我不能保证支持其他基于Chromium的浏览器。错误报告或功能建议如果您有错误报告或想
<br>2007/6/21 Version 3.1.2 beta <br>Updates: 1) 修正部分自动播放文件不兼容IE7的BUG。 2) 修正在检测自动播放文件格式时javascript代码出现的一些BUG。 2) 修正MenuConfig、configFolder...
3、样式和内容分离:系统主体框架div css结构,遵循国际最新W3C网页设计标准,兼容IE系列、火狐等主流浏览器,内容和样式分离让网站风格可以轻松修改和更换,而不会导致内容和结构的破坏。 4、周密的安全策略和...
兼容IE6、IE7、IE8、IE9、360、FireFox、Chrome、Opera等所有浏览器。 产品应用: 奥瑞文oTraining网络培训系统是培训领域的终端平台,HR最信赖工具应用,教育、金融、政府、医疗等企事业单位提供整体化解决方案的...
SWFUpload不同于其他基于Flash构建的上传工具,它有着优雅的代码设计,开发者可以利用XHTML、CSS和JavaScript来随心所欲的定制它在浏览器下的外观;它还提供了一组简明的JavaScript事件,借助它们开发者可以方便的...
特性: 安全可移植性兼容性极简主义弹力通用性可否认性依存关系: Python-主离线引擎,兼容版本2和3 JavaScript-主要的在线引擎,Firefox或Chrome(无加载程序),可选的Edge(无剪贴板),IE不兼容局限性: 没有...
3、样式和内容分离:系统主体框架div css结构,遵循国际最新W3C网页设计标准,兼容IE系列、火狐等主流浏览器,内容和样式分离让网站风格可以轻松修改和更换,而不会导致内容和结构的破坏。 4、周密的安全策略和攻击...
温馨提示:“本程序以IE高版本内核开发,后台环境不支持IE9.0及以下版本,请使用IE10.0以上版本浏览器或兼容火狐、谷歌、猎豹等浏览器,推荐使用兼容火狐浏览器登录后台管理, 请勿使用aspweb、小旋风或NETBOX等IIS...
首页在火狐下变形不兼容修复。 分页代码部分模板出错修复。 不开启伪静态时,分页出错修复。 IE6下搜索容易出错的问题修复。 5.0公测版本 此次变动较大,需要公测一段时间,收集一些BUG进行完善。希望大家帮忙多...
而flash具有很强的跨平台能力,基本支持所有PC操作系统(win/linux/mac)和浏览器(IE/FireFox/Chrome/Opera/Safari等),这样才能使你网站的播放器具有更广泛的兼容性。当前,flash已经是使用最多的网络媒体播放软件,...
(二)参赛作品制作工具软件不限,但应考虑网页浏览的方便性和兼容性,以1024*768 为标准分辨率进行设计,适应IE 6.0以上和Firefox等浏览器浏览。页面上的中文使用简体字,不使用繁体字,且使用常 见的字体。 (三...
完全兼容IE6/7/8/火狐等浏览器 搜索优化,完美植入 无论是页面结构、目录结构、文件名、网页标题,我们都充分植入了搜索引擎良性优化机制,为您的网站推广、搜索收录奠定了坚实的基础! 整合社区、完美互动 自主...
温馨提示:本程序以IE高版本内核开发,后台环境不支持IE9.0及以下版本,请使用IE10.0以上版本浏览器或兼容火狐、谷歌、猎豹等浏览器,推荐使用兼容火狐浏览器登录后台管理,请勿使用aspweb、小旋风或NETBOX等IIS测试...