C#webBrowser组件从javascript覆盖window.print

时间:2012-10-05 13:48:30

标签: c# javascript browser

我有一个Web应用程序可以完成许多工作,需要编写一个C#程序来打印由系统生成的文档。

当用户点击网络表单(window.print())上的打印按钮时,它将打印到特定打印机而不会​​弹出打印对话框。

我尝试了webbrowser.print(),但它只打印了没有弹出窗口的网页界面。

我正在寻找的一个方法是处理网站创建的打印作业。我希望C#程序能够删除打印对话框并直接打印到打印机。

任何人都可以给我一个提示,告诉我如何实现这一点,或解释为什么(如果)这是不可能的?

P.S。我无法更改Web应用程序中的任何内容。这就是为什么我想写一个C#程序来执行/管理这个额外的动作。

2 个答案:

答案 0 :(得分:0)

你在c#表单上有一个webbrowser控件吗?这样做:

myBrowser.Document.GetElementById( “ButtonId”)InvokeMember( “点击”);

它会自动点击按钮。

如果按钮没有id,则需要使用其类或标记来标识该按钮。搜索“在webbrowser控件中自动单击按钮”。

答案 1 :(得分:0)

尝试从C#代码

在网页中注入脚本

类似于某些C#app按钮点击的内容。 。

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function printDocument() { window.print(); }";
head.AppendChild(scriptEl);
webBrowser1.Document.InvokeScript("printDocument");

或只是

webBrowser1.InvokeScript("eval", "window.print();");