html打印不弹出对话框,在C#带或不带Web浏览器控制和打印对话框打印的HTML

本文介绍了如何在C# .NET环境中使用Web浏览器控件或HtmlPrinter类来实现HTML页面的打印,包括无打印对话框的自动化打印。作者详细讲解了如何导航到特定URL并立即打印,以及如何直接从HTML源代码打印,同时提供了一些代码示例和用户反馈的问题解答。
摘要由CSDN通过智能技术生成

在C#带或不带Web浏览器控制和打印对话框打印的HTML

67d504524bab6e529849e0b60139ccfa.png简介

。NET平台的Web浏览器控制的印刷也不是很难的工作。但对我的挑战是导航到某个特定的URL,然后打印一个单一的点击事件文件。我不得不面对另一个挑战,当我试图打印来自其以同样的方式源HTML文档。

好了,这篇文章介绍了一些技巧来打印这一挑战(如果有人这样认为的)的HTML文件。此代码还能够打印没有打印对话框的HTML页面。因此,如果任何一个需要打印,而无需任何用户交互,此代码可能对你有帮助。此外,该代码也能够打印没有任何形式的Web浏览器控制的HTML文档。背景

这项工程的工作要求的一些内容管理系统。我需要能够打印,而无需任何用户交互的HTML,也直接打印的HTML源。使用代码

如果你想在你自己的形式显示一个网页,您必须添加一个网页浏览器控制(我将它命名为AXW本文)。现在,如果你要打印这已经是在您的网页浏览器控制加载的页面,只需添加两行代码打印的页面:

印刷与打印对话框:对象EM = NULL;axW.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER,

160; 参考文献EM,EM);

打印没有打印对话框:axW.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT &

#160; SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,

60; 参考文献EM,EM);

现在,如果你想要一个单一的点击浏览和打印?你有Web浏览器,其Navigate方法,并等待,直到它加载整个HTML页面浏览到特定的URL。这就是:(; axW.ReadyState = SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE;){ System.Windows.Forms.Application.DoEvents();

}

然后打印你想要的任何以前的选项页面。

现在,如果你想从源头上打印一个HTML页面,什么应该做的是,刚刚HtmlPrinter项目添加到您的解决方案。然后去添加参考选项,右键点击你自己的项目上。从"项目"选项卡中,选择HtmlPrinter项目。

现在,直接打印,您需要创建一个HtmlPrinter对象,然后调用parameter.using HtmlPrinter的URL PrintUrlFromMemory方法;hpObj =新HtmlPrinter.HtmlPrinter();hpObj.PrintUrlFromMemory(txtUrl.Text);

现在,你在你的项目添加代码打印其源文本的HTML页面:HtmlPrinter.HtmlPrinter hpObj =新HtmlPrinter.HtmlPrinter();hpObj.PrintHtml(txtString.Text,TRUE);

如果你要打印没有打印对话框,然后使用以下行:hpObj.PrintHtml(txtString.Text假);兴趣点

MSHTML的接口和类的工作是非常复杂的。因此,我建议,在你工作,尝试了解MSHTML的基本结构,当然有关COM。|博润

回答

×评论会员:游客 时间:2011/12/06您好!我有一些问题,当我试图把本地的文件,其中包含图片,图片不出现,我不能打印我的文件,打印"PAG...30/..."{BR}我知道这是一个旧的项目,但请大家帮忙!Thks

rvangaal

×评论会员:游客 时间:2011/12/06嗨,有谁知道类似的方式打印在C的HTML?欢呼声,范尼

会员1604300

×评论会员:漂亮 时间:2011/12/06 ShaharM

×评论会员:游客 时间:2011/12/06警告1找不到类型'AxDHTMLEDLib.AxDHTMLEdit'。请确保包含此类型的大会,是引用。如果这种类型的开发项目的一部分,确保该项目已成功建成。引用AxDHTMLEDLibAxDHTMLEDLib不工作(标有!)我在哪里可以下载AxDHTMLEDLib库?伟大工程,虽然

。shiravidas

×评论会员:游客 时间:2011/12/06我要打印一些HTML,但不需要的形式,我希望它是自动。能不能做到

?约瑟夫Growney

×评论会员:游客 时间:2011/12/06这是一个很好的工具。我一直在寻找一种方式发送HTML打印。这不,,约瑟夫

博润

×评论会员:游客 时间:2011/12/06WC..imgsrc=http://www.orcode.com/upimg/2011_12_06_02_21_17_1.gif尝试自己之前,你从anyother其他任何

特伦顿亚当斯:通用的C#|解决方案不起作用。仅适用于Windows窗体应用程序。

具有较强的集会不会工作,而无需创建一个新的Interop

×评论会员:yvisek 时间:2011/12/06您好,我是想在我的程序中使用此范例,但我得到了一些错误...

错误3 System.Drawing.Point"类型"是指在一个未引用的程序集。您必须添加一个参考大会"System.Drawing,版本= 2.0.0.0,文化=中立,于PublicKeyToken = b03f5f7f11d50a3a"。 E:\ TEST \ frmHtmlPrinter.cs 70 4测试

你知不知道这个问题的任何解决方案

×评论会员:?BMW740 时间:2011/12/06您好,

有没有用这种方法的方式来打印对话框:

webBrowser1.Document.ExecCommand()

我试图与2和3作为第三个参数,但总是显示对话框。尝试也没有效果,通过Document.DomDocument

×评论会员:会员437642 时间:2011/12/06你有这个类的书面版VB.NET发布的某处

×评论会员:会员4554895 时间:2011/12/06可生成网页的拇指HTML吗??BR />感谢BR />

×评论会员:??nin82 时间:2011/12/06自定义页面设置将

7d240242568c569ebe08226781cbfa0d.gif美妙

×评论会员:!BabitaShivade 时间:2011/12/06您好,

如何在HTML页打印的时候,我们可以发送自定义的页面设置

×评论会员:joelha20001 时间:2011/12/06 OK ... ...但这里是命名空间的代码你提到的

×评论会员:?BabitaShivade 时间:2011/12/06 HTML页面我们如何可以设置打印设置

×评论会员:。AndrewLe 时间:2011/12/06一个类型'System.Windows.Forms.AxHost.InvalidActiveXStateException AxInterop.DHTMLEDLib.dll

发生的第一次机会异常

我发现这个错误,当我运行此代码。你能告诉我如何解决这个错误,请

感谢

×评论会员:petebob796 时间:2011/12/06喜

我有Windows XP 64位机。我需要运行此应用程序在64位的机器。你能帮助我。

JAY的

没有伟大的事情是创建突然。 - 爱比克泰德

×评论会员:Nguoi立郑氏 时间:2011/12/06是否有一个简单的方法来修改此所以将暂停,直到打印按钮已按下"打印"对话框。究其原因,我想循环使用printdialog为第一次运行,然后避免其余。我有一个看的属性,可能与此,但不能找到一个。

另外,我可以通过打印机设置比如我前循环和预先设定的选项,我带来了一个printDialog。

修改:2008年4月2日(星期三),上午05:36

|时间表

×评论会员:游客 时间:2011/12/06我要利用这一高科技做出IE.But我的结果alway失败的插件!我认为它只是只WINFORMimgsrc=http://www.orcode.com/upimg/2011_12_06_02_21_17_3.gif运行,真的吗?你有什么想法,或者你能帮助我共创AxSHDocVw.AxWebBrowser在运行时。我的目的是使网页可以打印不喜欢http://www.htmlprinting.com对话预先感谢

MichaelJRD

×评论会员:游客 时间:2011/12/06我为你的程序vb.net解决方案寻找在C#带或不带Web浏览器控制和打印对话框打印的HTML此程式我需要什么,但它是一个Windows应用程序,我需要一个Web应用程序。你能帮助我吗?imgsrc=http://www.orcode.com/upimg/2011_12_06_02_21_17_1.gif

Yendi

×评论会员:游客 时间:2011/12/06有时是小东西,使生活更容易一点。18个月后,信息仍然是有价值的的??良好的修养。{五}{中六}

Jeweel

×评论会员:游客 时间:2011/12/06您好,我怎样才能修改您的解决方案,这样我就可以通过ASP.NET页面中使用它呢?只要删除://等待,直到DHTMLEdit控制加载整个文档为(;frmObj.axD.Busy=FALSE;!){System.Windows.Forms.Application.DoEvents()}预先感谢。

blahblahblaahlaksjdf

×评论会员:优秀文章 时间:2011/12/06

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值