在上面的评论中,你提到过你已经研究了Chrome扩展和FireFox插件,然而这些浏览器中已经内置了禁用打印对话框的功能。如果你正在制作的Web应用程序将在受控环境(您管理哪些浏览器可以访问它以及它们如何配置)中运行,那么你可以相当容易地做到这一点。
Chrome
首先,转到
chrome://settings/
并将您的主页更改为Web应用程序。接下来,在桌面上为Chrome浏览器创建一个快捷方式,然后右键单击该快捷方式以打开属性窗口。在“目标”输入字段中,添加
--kiosk --kiosk-printing
到结尾。应用更改,关闭所有Chrome窗口,然后单击快捷方式。这应该会使您进入全屏模式(kiosk mode),当您尝试打印时,它应该自动打印在默认打印机上,而不显示弹出窗口。
FireFox
在FireFox中,转到
about:config
并同意任何警告消息。然后,在页面的某个地方右键单击并创建一个“
New -> Boolean
”。它将提示您输入名称和状态。对于名称,请输入
print.always_print_silent
,对于状态,请将其设置为true。然后,您需要保存更改并重新启动您已打开的任何FireFox窗口。如果您尝试打印某些内容,它将不再要求显示弹出窗口,并且将自动打印在默认打印机上。
使用这两种浏览器中的任何一种以此方式配置后,您可以使用标准的
window.print();
JavaScript方法进行打印,而无需任何服务器端交互。
批处理文件?
如果您想要更简单的方法来完成这些操作,可以使用这两个命令提示脚本自动配置和/或运行它们以满足您的需求:
Chrome:
cd Program Files (x86)\Google\Chrome\Application
chrome.exe --kiosk --kiosk-printing
火狐浏览器:
FOR /D %%G in ("%APPDATA%\Mozilla\Firefox\Profiles\*.default") DO SET prof=%%G
cd %prof%
echo user_pref("print.always_print_silent", true);>>prefs.js
cd \..
cd Program Files (x86)\Mozilla Firefox
firefox.exe