【发布时间】:2010-07-14 02:00:24
【问题描述】:
我想找到或编写一个 Internet Explorer ActiveX 控件,它允许我在没有对话框的情况下将网页打印到特定的打印机。我遇到的问题是这个特定页面需要打印到具有非常特定方向属性的标签打印机。任何人都可以让我开始吗?谢谢。
【问题讨论】:
-
我也想要这个!希望有人能提供一些答案。
标签: plugins activex internet-explorer
我想找到或编写一个 Internet Explorer ActiveX 控件,它允许我在没有对话框的情况下将网页打印到特定的打印机。我遇到的问题是这个特定页面需要打印到具有非常特定方向属性的标签打印机。任何人都可以让我开始吗?谢谢。
【问题讨论】:
标签: plugins activex internet-explorer
如果您连接到 IE 窗口消息并等待打印对话框激活,使用 GetWindowText() 查找具有“打印”标题的窗口,您可以显式发送消息到各种控件以设置设置并单击“打印”按钮。这在 IE7 中比在 IE8 中更容易做到,但在 SPY++ 的帮助下,您可以找到每个设置的控件 ID。
【讨论】:
为什么要求您在没有对话框的情况下打印?您可以使用 Javascript 自动调出对话框,这样用户就可以选择打印机和选项;否则您将不得不对打印机名称进行硬编码。例如:
<body onload="javascript:window.print();">
也许您可能应该考虑输出到为这种特定布局设计的 PDF 或 Word 文档之类的东西 - HTML 可能在各种 IE 版本上呈现不同,并且您可能不想要像标签这样特定的东西搞砸了。
【讨论】:
我已经做到了,而且很简单,但我似乎无法让我的 ActiveX 控件注册...
当我手动注册时它可以工作,但是当我自己运行它时,它会失败。
您需要做的就是创建一个带有 WebBrowser 控件的表单。将要查看的页面传递给 NavigateURL 属性并调用 Navigate 方法。
导航完成后,可以调用打印方法。由于您使用标签打印机进行打印,因此请记住设置页边距并删除页眉和页脚,并在页面完成打印后重新设置。
(我在 .Net 中完成了我的工作)
【讨论】: