javascript打印没有打印对话框

时间:2010-11-27 15:30:44

标签: javascript

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

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

只需在没有对话框的情况下进行打印,

我应该在下面的代码段中添加哪些代码段,

还有一个疑问,我想在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而不打开打印对话框,

5 个答案:

答案 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)

这是不可能的,并且有一些很好的理由:

  • 用户可能想要自己选择打印机
  • 用户可能希望能够控制何时激活他的打印机(想象一下讨厌的自动打印广告弹出窗口, ARRGH!
  • 用户可能想要指定打印机设置(灰度或颜色,分辨率,大小......)