直接从浏览器打印,无需打印弹出窗口

时间:2009-07-08 08:40:56

标签: browser printing activex client-side

正如它在主题中所说,我要为基于网络的应用程序创建一个功能,允许用户直接发送打印而不提示任何对话框只需进行打印即点击和打印,简单!但不适合我:(。

请,建议什么是最好的选择,我应该怎么写(技术)。

建议!

感谢。

编辑:应在用户的默认打印机上发送打印件。

7 个答案:

答案 0 :(得分:16)

  

我找不到其他的解决方案   浏览器。当我发布这个问题时,IE就在了   更高的优先级,我很高兴地找到了   一个为它。如果你有解决方案   对于其他浏览器(firefox,safari,opera),请在这里分享。   感谢。

VBSCRIPT比在VB6或C#/ VB.NET上创建ActiveX要方便得多:

<script language='VBScript'>
Sub Print()
       OLECMDID_PRINT = 6
       OLECMDEXECOPT_DONTPROMPTUSER = 2
       OLECMDEXECOPT_PROMPTUSER = 1
       call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>

现在,请致电:

<a href="javascript:window.print();">Print</a>

将发送没有弹出打印窗口的打印。

答案 1 :(得分:3)

AttendStar创建了一个免费的附加组件,可以抑制打印对话框,并删除大多数Firefox版本的所有页眉和页脚。

https://addons.mozilla.org/en-US/firefox/addon/attendprint/

使用该功能,您可以使用$('img')。jqprint(); jquery的jqprint只打印从Web应用程序自动调用的图像。

答案 2 :(得分:3)

IE9不再支持通过调用window.print()来触发Print()VBScript,就像IE7和IE8一样,因此window.print()现在将始终触发IE9中的打印对话框。

修复非常简单。您只需要调用Print()本身,而不是onclick事件中的window.print()。

我在另一个问题的答案中更详细地描述了修复程序,其中一个工作代码示例运行略微更新的HTML语法(尽可能地尽可能地测试为工作代码)。

您可以在此处找到示例代码:

Bypass Printdialog in IE9

答案 3 :(得分:1)

我不相信这是可能的。显示的对话框允许用户选择要打印的打印机。因此,假设您的应用程序可以单击并打印,用户单击您的打印按钮,但有两台打印机连接到计算机。或者,更有可能的是,该用户正在拥有25台打印机的办公楼中工作。如果没有该对话框,计算机将如何知道要打印哪台打印机?

答案 4 :(得分:0)

  

this.print(假);

我在Chrome,Firefox和IE中试过这个。它仅适用于Firefox和IE,它使用默认打印机(默认打印设置),仅在我渲染PDF时使用(我使用福昕阅读器禁用安全阅读模式)。 Chrome会在呈现HTML页面时显示打印对话框以及其他浏览器。

答案 5 :(得分:0)

对于IE浏览器,“VBScript解决方案”有效。

但是@purefusion在Bypass Printdialog in IE9提到,使用Print()而不是window.print()

答案 6 :(得分:-3)

这应该有用,我自己尝试过,它对我有用。如果传递的是True而不是false,则会出现打印对话框。

this.print(false);