c#防止word打印,直到文档中的图像完全加载
本文关键字:图像 加载 文档 word 防止 打印 | 更新日期: 2023-09-27 17:50:43
这是我在这里发现的上一个问题的后续问题
我需要打印几页,每个需要下载的图像,以便能够显示它们。但是每当我通过c#应用程序启动。doc并赋值打印时,它只打印文本,因为图像还没有完全加载。
那就是当我做了上面提到的线程找到一个解决方案。他们给出了一个解决方案,而且一直很好用,直到昨天他们换了一台新的。这台电脑仍然安装着相同的Word 2007,当我试图应用上述解决方案时;它再也不起作用了。和以前一样的结果,我不知道为什么。
我还尝试将打印参数延迟10秒,以便给word一些时间来加载图像,这是有效的,但10秒可能不够大的文档,如果连接超时怎么办?
所以我需要一种可靠的方法来防止word打印,直到图像被(下载)加载到文档中,要么使用c#,要么使用内置的word选项。请帮助。
您应该使用word interop而不是使用Process
。
参考以下链接
- http://www.codeproject.com/KB/printing/WordPrinting.aspx
- http://www.codeproject.com/KB/office/WordPrint.aspx
- http://msdn.microsoft.com/en-us/library/b9f0ke7y.aspx
好吧,首先,很抱歉这么晚才给你答复,我刚发现这个还没开。
显然,所有版本的Word(至少从2003年开始)都有在打印之前加载外部内容的选项。这包括Word 2010,只是在2010年,Word似乎忽略了该功能。我在3台机器上测试了这个,我不知道为什么,但是在2010年它被忽略了。
现在我注意到,当你打开一个已经在后台运行的word文档时,它会把它带到前面,这给了我一个想法,让我找到了解决方案。
- 步骤1:打开需要打印的文件。
- 步骤2:根据外部项目的数量加载,设置定时器(我给了应用程序每加载一张图片需要半秒的时间,这远远超过需要但安全总比后悔好)
- 步骤3:再次打开文档但是这次使用print参数。
现在文档只会重新显示到前面,并开始打印已经打开的文档。
我真的不推荐这个解决方案给任何人,因为它更多的是一个工作,而不是一个可靠的修复。但是它完成了任务