c#防止word打印,直到文档中的图像完全加载

本文关键字:图像 加载 文档 word 防止 打印 | 更新日期: 2023-09-27 17:50:43

这是我在这里发现的上一个问题的后续问题

我需要打印几页,每个需要下载的图像,以便能够显示它们。但是每当我通过c#应用程序启动。doc并赋值打印时,它只打印文本,因为图像还没有完全加载。

那就是当我做了上面提到的线程找到一个解决方案。他们给出了一个解决方案,而且一直很好用,直到昨天他们换了一台新的。这台电脑仍然安装着相同的Word 2007,当我试图应用上述解决方案时;它再也不起作用了。和以前一样的结果,我不知道为什么。

我还尝试将打印参数延迟10秒,以便给word一些时间来加载图像,这是有效的,但10秒可能不够大的文档,如果连接超时怎么办?

所以我需要一种可靠的方法来防止word打印,直到图像被(下载)加载到文档中,要么使用c#,要么使用内置的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参数。

现在文档只会重新显示到前面,并开始打印已经打开的文档。

我真的不推荐这个解决方案给任何人,因为它更多的是一个工作,而不是一个可靠的修复。但是它完成了任务