如何实现.NET在客户端的打印word并保存至默认文件夹
2015-09-13 22:28
375 查看
开始在做一个网站的时候,我们有一个功能就是实现word的模板打印,当时我真的是一个很不太好的观察者呀!把这个功能想得太复杂了,所以不仅实现了打印还实现了如何把一个下载好的文件放在客户端一个固定的文件夹下(类似于QQ里面的默认下载)。
首先是先将生成的word模板放到一个服务器的缓存文件夹下,然后接下来就是要将服务器端的文件变为文件流,导出到客户端,接下来的就是默认保存
//提供下载源地址(在服务器上的地址)
string srcPath = Map.Server("~//word");
FileInfo fileInfo = new FileInfo(srcPath);
//若该文件存在则弹出对话框让你选择保存地址(本地)
if (fileInfo.Exists)
{
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name);
Response.WriteFile(srcPath);
Response.Flush();
Response.Close();
}
补充:不弹出对话框代码如下:
/**//**//**//// <summary>
/**//// 下载文件
/**//// </summary>
/**//// <param name="filename">文件物理地址</param>
protected void DownloadFile(string filename)
{
string saveFileName = "test.doc";
int intStart = filename.LastIndexOf("\")+1;
saveFileName = filename.Substring(intStart,filename.Length-intStart);
FileStream MyFileStream;
long FileSize;
MyFileStream = new FileStream(filename,FileMode.Open);
FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
Response.AddHeader("Content-Disposition", "attachment;filename="+saveFileName);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //很重要解决乱码问题
Response.ContentType = "application/vnd.ms-word";
Response.BinaryWrite(Buffer);
Response.Flush();
Response.Close();
Response.End();
} 用这个方法就可以将你的文件保存在客户端默认的文件夹下了。
在这段期间的学习我知道,没有什么不可能办到的事情只要你静下心来研究研究,你就会发现其实你能学到的东西有很多,你还有很多东西需要学,你就会体会到计算机编程的美妙,把别人觉得不可能的事情变成可能的事情,当然,你一定要敢想。
首先是先将生成的word模板放到一个服务器的缓存文件夹下,然后接下来就是要将服务器端的文件变为文件流,导出到客户端,接下来的就是默认保存
//提供下载源地址(在服务器上的地址)
string srcPath = Map.Server("~//word");
FileInfo fileInfo = new FileInfo(srcPath);
//若该文件存在则弹出对话框让你选择保存地址(本地)
if (fileInfo.Exists)
{
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name);
Response.WriteFile(srcPath);
Response.Flush();
Response.Close();
}
补充:不弹出对话框代码如下:
/**//**//**//// <summary>
/**//// 下载文件
/**//// </summary>
/**//// <param name="filename">文件物理地址</param>
protected void DownloadFile(string filename)
{
string saveFileName = "test.doc";
int intStart = filename.LastIndexOf("\")+1;
saveFileName = filename.Substring(intStart,filename.Length-intStart);
FileStream MyFileStream;
long FileSize;
MyFileStream = new FileStream(filename,FileMode.Open);
FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
Response.AddHeader("Content-Disposition", "attachment;filename="+saveFileName);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //很重要解决乱码问题
Response.ContentType = "application/vnd.ms-word";
Response.BinaryWrite(Buffer);
Response.Flush();
Response.Close();
Response.End();
} 用这个方法就可以将你的文件保存在客户端默认的文件夹下了。
在这段期间的学习我知道,没有什么不可能办到的事情只要你静下心来研究研究,你就会发现其实你能学到的东西有很多,你还有很多东西需要学,你就会体会到计算机编程的美妙,把别人觉得不可能的事情变成可能的事情,当然,你一定要敢想。
相关文章推荐
- Android的sax解析xml
- Linux Shell脚本 多线程
- Java并发编程:volatile关键字解析
- 简单理解Java异常处理机制
- Linux下源码安装mysql及mysql的简单用法
- Android NDK开发 在eclipse中添加C方法代码提示
- POJ 3071 Football(概率DP)
- 去掉标题栏的JFrame如何实现拖动
- 迷茫的孩子
- 匿名对象的深入分析
- sublime 插件
- PHP的类与对象
- java的volatile机制(前篇)
- Python 爬虫中遇到的反爬虫问题
- Qt事件处理机制
- java sax解析xml
- Eclipse执行Hadoop WordCount
- html5学习之路_007
- 【poj1008】玛雅历
- Java网络编程之URL