首页 新闻 搜索 专区 学院

c# winform打印预览问题 求高手指教

0
悬赏园豆:100 [已解决问题] 解决于 2011-07-21 20:34

最近在做个项目,涉及到一个展示打印预览的问题,现在知道有两种解决方案:

第一个是调用word中的PrintPreview打印预览功能,这种方法显示没问题,但是在点击关闭以后会显示所预览的word文档,还要再点击关闭当前的文档,而且还有可能对文档进行修改,我理解可能是因为先调用了word应用程序而后从外部操作打开office自带的预览功能,这种方式用户体验度不好;

第二个是.net中的PrintPreviewDialog控件,他的显示效果完全是我想要的样子,但是需要关联PrintDocument,而这个PrintDocument如何指定我本地的word文档呢(test.doc)??现在显示的预览效果是空白的~~

综上呢  我只是想单机按钮,显示本地word的打印预览模式,并且不显示word文档!有高手能帮我解决这个问题吗?或者有其他解决方案也可以,在此谢过了,这个问题已经琢磨好几天了,一直没有好办法实现!

myleslau的主页 myleslau | 初学一级 | 园豆:104
提问于:2011-06-22 10:54
< >
分享
最佳答案
0

第二个方法肯定是行不通的,因为.net提供的PrintDocument类是让你自己向画布里面画你要打印东西的。怎么可能自己把word的内容画到里面去呢。所以这个是不行了。

还有一种思路,但是没有验证过,楼主可以试试,利用WebBrowser控件,可以把word显示到这个控件里面,这个控件本身有打印以及预览等功能。

收获园豆:100
刘鸿海 | 小虾三级 |园豆:655 | 2011-07-21 13:34
恩 我也想过这个WebBrowser控件 不过还是直接调用word了 你的回答是最贴近我当时考虑的思维的 呵呵
myleslau | 园豆:104 (初学一级) | 2011-07-21 20:33
呵呵,为什么没有webbrowser呢,实现不了吗?
刘鸿海 | 园豆:655 (小虾三级) | 2011-07-22 08:33
其他回答(2)
0
邀月 | 园豆:25475 (高人七级) | 2011-06-22 17:27
您好 我的英文水平不是很好 ,而且我只找到一篇关于操作word的还是vb语言的,您如果能解决我这个问题可以详细告诉我一下吗,非常感谢!
支持(0) 反对(0) myleslau | 园豆:104 (初学一级) | 2011-06-24 09:19
0

楼主遇到的第一给问题可以这样解决:在 try...catch语句块的finally中添加一个循环:while (wApp.PrintPreview){}。如果用户关闭预览窗口,PrintPreview的值为false,跳出循环后,再执行关闭word文档的操作。

finally
{
if (wApp != null)
{
while (wApp.PrintPreview)
{
//这里这么做是因为在用户关闭了预览窗口后,却打开了word文档,但是要求必须在用户关闭预览窗口后不能打开文档的
}
wApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(wApp);
wApp = null;
}
GC.Collect();
}

你爱我像谁 | 园豆:202 (菜鸟二级) | 2015-10-21 16:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册