0

在我的网络浏览器控件中,我正在调用单击。我只是循环通过 getElementsByTagName("INPUT") 和提交一个,我做 obj.Click

该按钮所做的只是运行一个 Javascript,它通过动态创建和发布一个 ID=012345 的表单来执行回发。

在 Fiddler 中,唯一显示的是 POST,尽管返回的 ContentType 是 application/pdf。正是我想要的。

关键是……我的 WebBrowser 正在使用 Adob​​e 而不是在控件中打开该内容!我的目标是动态保存 PDF。在 IE 中,当我手动单击按钮时,它会在窗口中打开。如果这发生在我的 WebBrowser 中,我可以保存文档。或者,如果我能以某种方式捕获应用程序/pdf 返回,也许我可以保存它?

假设答案(感谢 Rick Mohr):

正如下面 Rick 所证实的,我的团队假设 WebBrowser 控件使用一些 32 位模式代码。因此,要解决此问题,您必须确保使用 Platform Target: x86 运行您的应用程序。

我们没有通过它,因为这个应用程序与很多东西交互,我们没有看到当时的投资回报率来缓解这种情况。所以我不能肯定回答,尽管我相信 Rick 是正确的。

所以我们的解决方案是使用一种一次性的方法,使用类似于 HTTPWebRequest 的东西,将对象流式传输。它与项目的其余部分不相一致,但它肯定不会破坏任何依赖关系,所以这已经足够好了。:^)

4

1 回答 1

2

你是在 64 位机器上吗?WebBrowser 控件使用的 Adob​​e Reader DLL 是 32 位的。如您所见,在 64 位模式下运行时,它使用您的 Web 浏览器打开 PDF。如果您希望它在 64 位机器上工作,请将您的平台目标设置为“x86”而不是“任何 CPU”。

于 2013-05-15T20:32:59.373 回答