下面的代码段工作正常,但它打开了对话框窗口,
但我不想打开打印对话框,
只需在没有对话框的情况下进行打印,
我应该在下面的代码段中添加哪些代码段,
还有一个疑问,我想在DOT矩阵打印机中打印出来,下面的代码片段会有用吗?
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;
我开发了结算应用程序,
如果我显示打印对话框,那么它会花费几秒钟来打印,看到我已经有更多的打印机, 我只有一台打印机,即点阵,当我给出打印命令时,它应打印BILL而不打开打印对话框,
答案 0 :(得分:12)
似乎大多数人都关注这种功能的消极方面。
是的,在大多数情况下,网站可能无法取消对话框。
但在少数情况下,比如这个例子,他试图从浏览器打印收据。据我所知,在这种情况下,每一秒都太宝贵,不能浪费,确认每天可能有数百张收据。
毕竟这是一项业务,时间就是金钱!
有无数其他案例需要取消对话框,例如易趣卖家在发货前打印标签。
理想情况下,网站开发人员应该能够指定一些基本参数,例如打印机名称,颜色/单色,质量,纸张尺寸。并且完全从源代码命令打印而不需要用户执行任何操作,当然除了仅配置这些参数一次。
不幸的是大多数浏览器还没有,因为他们的开发人员尚未充分发挥在云上托管所有应用程序的潜力,包括使用POS和标签打印软件等打印机的应用程序!顺便说一句,这里是软件服务的一个很好的利基!
好消息是,已经可以在Firefox上实现类似的功能,您可以在其中更改浏览器设置以启用他们所谓的“无声打印”,您应该将其设置为“始终”并且您将会很好。
我确信IE也可能有某种方法可以做到,但我还没有找到它。
有人知道其他主流浏览器(如Chrome和Opera)提供的打印机和打印功能的状态如何?
答案 1 :(得分:9)
这是完全可行的。我在银行工作,并有一个网页,计票员需要在发布交易时自动打印。由于他们整天进行交易,如果他们每次都显示对话框,就会减慢它们的速度。此代码将选择您的默认打印机并直接打印到它,没有对话框。
<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>
答案 2 :(得分:5)
下载Google Chrome版本18.xx.xx.xx,您可以使用标记关闭打印机对话框
- 亭NOPRINT
那种时尚的东西,我不能完全记住我的头脑,但谷歌将帮助。当您选择要打印的内容时,这将允许对话框不受影响。
答案 3 :(得分:0)
我认为最好的替代品将是Flash或Java ....
Flash在自定义OS元素方面非常灵活....
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/printing/PrintJob.html
因此,用户可以通过打印来定义打印机,只需将打印机的名称传递给该功能,打印机就会开始打印......
答案 4 :(得分:-1)
这是不可能的,并且有一些很好的理由: