25

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

请建议最好的选择以及我应该如何编写它(技术)。

请建议!

谢谢。

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

4

7 回答 7

18

我找不到其他浏览器的解决方案。当我发布这个问题时,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>

将发送打印而不弹出打印窗口。

于 2009-07-14T11:38:08.373 回答
3

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

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

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

于 2011-09-21T19:58:40.750 回答
3

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

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

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

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

在 IE9 中绕过打印对话框

于 2012-09-27T18:04:01.627 回答
1

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

于 2009-07-08T08:45:51.790 回答
0

this.print(false);

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

于 2012-12-20T03:49:31.680 回答
0

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

但正如@purefusion 在绕过 IE9中的 Printdialog 中所提到的,使用 Print() 而不是 window.print()

于 2013-03-16T13:48:10.983 回答
-3

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

this.print(false);
于 2010-08-26T18:40:44.760 回答