没有打印对话框的javascript打印

IT技术 javascript
2021-01-20 02:16:58

下面的代码片段工作正常,但它打开了对话框窗口,

但我不想打开打印对话框,

只打印应该在没有对话框的情况下完成,

我应该在下面的片段中添加什么片段,

还有一个疑问,我想在 DOT Matrix Printer 中打印出来,下面的代码片段会起作用吗?

var prtContent = document.getElementById(strid);
var WinPrint =
window.open('','','left=0,top=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
prtContent.innerHTML=strOldOne;

我开发了计费应用程序,

如果我显示打印对话框,那么打印需要几秒钟,看看我有更多的打印机,我只有一台打印机,即点阵,当我给出打印命令时,它应该打印账单而不打开打印对话框,

4个回答

下载 Google Chrome 版本 18.xx.xx.xx,您可以使用标志关闭打印机对话框

--kiosk-noprint

我无法完全记住那种时尚的东西,但谷歌会对此提供帮助。当您选择要打印的任何内容时,这将允许对话框不受影响。

这太好了,谢谢。工作参数是“--kiosk-printing”
2021-04-06 02:16:58

这是完全可能的。我在银行工作,有一个网页,出纳员需要在交易发布时自动打印。由于他们整天都在进行交易,如果他们每次都显示对话框,那么他们的速度就会变慢。此代码将选择您的默认打印机并直接打印到它而没有对话框。

<form>
<input type="button" value="Print Page" onClick="window.print()">
</form>


<script language="VBScript">
// THIS VB SCRIP REMOVES THE PRINT DIALOG BOX AND PRINTS TO YOUR DEFAULT PRINTER
Sub window_onunload()
On Error Resume Next
Set WB = nothing
On Error Goto 0
End Sub

Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1


On Error Resume Next

If DA Then
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)

Else
call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","")

End If

If Err.Number <> 0 Then
If DA Then 
Alert("Nothing Printed :" & err.number & " : " & err.description)
Else
HandleError()
End if
End If
On Error Goto 0
End Sub

If DA Then
wbvers="8856F961-340A-11D0-A96B-00C04FD705A2"
Else
wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B"
End If

document.write "<object ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:"
document.write wbvers & """> </object>"
</script>
它在 IE 9.0.8112.16421 上对我不起作用。有人知道这是什么原因吗?允许 ActiveX 控件..
2021-03-29 02:16:58
这是我一直在寻找的功能。我在一个页面上尝试了上面的代码,它要求安装一个附加组件。这似乎来自微软,但是,谁能告诉我:如果我安装了这个,这是否会给其他网站使用相同脚本自动打印的能力?如果是这样,有没有办法将附加组件限制为仅一个域?
2021-04-01 02:16:58
这是一个旧的 IE ONLY 解决方案。
2021-04-05 02:16:58
不确定。我只是在 Windows PC 上使用 IE。
2021-04-14 02:16:58
这也不适用于 IE 9 +,我也需要在 chrome 上使用类似的东西。出于同样的原因,这个答案描述了。
2021-04-14 02:16:58

这是不可能的,有几个很好的理由:

  • 用户可能想要自己选择打印机
  • 用户可能希望能够控制他的打印机何时被激活(想象一下令人讨厌的自动打印广告弹出窗口,ARRGH!
  • 用户可能想要指定打印机设置(灰度或颜色、分辨率、尺寸……)
我同意。餐厅、网上商店等的许多场景,这将是非常好的。
2021-03-18 02:16:58
我不买这个作为答案,更多的是“你不应该那样做”的评论。我完全需要 OP 要求的内容,因为我正在尝试编写一个打印支票的程序,我不能允许用户为此使用打印对话框。接受的答案接近我正在寻找的答案。
2021-04-01 02:16:58
这令人沮丧。兄弟,你要积极
2021-04-08 02:16:58
有可能的。请看我的评论。我的用户是需要在交易发布时自动打印的出纳员。它们使用默认设置打印到同一台打印机。除了下一个走到出纳窗口的人之外,什么都不会改变。
2021-04-10 02:16:58
-1 这不是答案。任何人都知道为什么我们需要对话。但是在很多情况下,没有对话框的打印可以节省时间和金钱。以银行业为例。
2021-04-13 02:16:58

我认为最好的替代方案是 Flash 或 Java ....

Flash 在自定义操作系统元素方面非常灵活......

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/printing/PrintJob.html

因此,用户可以通过他想要打印的方式定义打印机,您只需将打印机的名称传递给函数,该打印机就会开始打印.....

这在 2013 年可能是真的,但 Flash 已经结束了,我不记得上次看到安装了 Java 插件的浏览器是什么时候了。
2021-04-09 02:16:58