3

我想将打印作业发送到打印机,而用户不必在打印确认对话框窗口上单击“确定”。

C# 代码隐藏或 javascript 都可以,无论哪个效果更好。

所以...我知道可以打印 HTML 文档,但是是否可以在没有用户单击 OK 的情况下进行打印?

  • 我问这个的原因是因为打印作业打印文档 100 次,动态插入表单值。(想象一下,您正在打印一张感谢卡给 100 个人,并且不想自己更改名称 100 次)。如果用户必须确认每个文档的打印作业,则仅完成一个打印作业将需要一段时间。现在想象一下,如果一天内有 100 个打印作业!那是一个人花费数小时点击“好”10000 次。

注意:只有一个人需要使用打印表单,所以如果这是降低浏览器安全问题的问题,那将是可行的。我只需要一种方法来允许所有 100 个打印件在不确认每个打印件的情况下通过(即使每 100 个打印件只有 1 个确认也可以,但文件仍然每次都必须更改)。

4

4 回答 4

3

我在寻找这个问题的解决方案时发现了这个问题,我在这里发布它至少供我自己参考。它可以在 Firefox 中非常简单地完成(使用 v. 3.5 测试):

  • 转到 Firefox 地址栏中的 about:config
  • 右键单击第一个设置,转到新建 -> 布尔值 -> 添加“print.always_print_silent” -> 值“true”
  • 重启火狐

现在,如果您从 javascript 调用 window.print(),则该页面会在没有事先确认的情况下打印出来。

来源:http ://forums.mozillazine.org/viewtopic.php?f=40&t=48336&start=0

于 2009-10-20T08:51:05.767 回答
3

从任何主要浏览器 - 我很确定你不能。

您可以创建一个嵌入了 WebBrowser 控件的 WinForm 应用程序,并在没有用户确认的情况下从那里打印(如果我没记错的话,对象有一个 Print 方法)。

于 2009-08-11T22:03:51.243 回答
1

如果您使用的是 Internet Explorer 5.5 或更高版本,这应该可以工作:

function printit(){ 
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 
    document.body.insertAdjacentHTML('beforeEnd', WebBrowser); WebBrowser1.ExecWB(6, -1); 
    WebBrowser1.outerHTML = ""; 
}
于 2009-08-11T22:04:28.030 回答
1

为什么不创建一个包含所有 100 张卡片的单页并打印它,只需确保您有适当的分页符。

于 2009-08-11T22:10:12.697 回答