您的位置:首页 > 其它

如何实现.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();

}         用这个方法就可以将你的文件保存在客户端默认的文件夹下了。
        在这段期间的学习我知道,没有什么不可能办到的事情只要你静下心来研究研究,你就会发现其实你能学到的东西有很多,你还有很多东西需要学,你就会体会到计算机编程的美妙,把别人觉得不可能的事情变成可能的事情,当然,你一定要敢想。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: