js window.print() 打印文件流 并设置静默打印
时间: 2023-09-12 11:13:38 浏览: 513
要实现静默打印,可以使用浏览器自带的打印机设置。具体步骤如下:
1. 打开浏览器设置(Chrome浏览器的设置页面可以通过输入 chrome://settings/ 访问)
2. 找到“高级设置”,点击“打印”下的“打印机”设置
3. 找到要使用的打印机,点击“管理”按钮
4. 在打印机管理界面中,找到要设置为默认打印机的打印机,并右键点击选择“设置为默认打印机”
5. 点击“属性”按钮,进入打印机属性设置界面
6. 在“高级”选项中,找到“打印机命令”或“打印机指令”等选项,找到“静默打印”选项并勾选
接下来是JS实现打印文件流的代码:
```javascript
function printFile(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
var printWindow = window.open();
printWindow.document.write("<img src='" + reader.result + "'/>");
printWindow.print();
printWindow.close();
};
}
```
这段代码会将文件流读取为Data URL,并在新窗口中打印。如果之前已经设置了默认打印机为静默打印,则可以实现静默打印。
相关问题
window.frames[0].print() 设置静默打印
在 JavaScript 中,使用 `window.frames` 可以获取当前窗口中所有的 iframe 元素。如果想要在 iframe 中进行静默打印,可以通过以下代码实现:
```javascript
window.frames[0].print();
```
这里假设只有一个 iframe 元素,并且它是数组中的第一个元素。`print()` 方法会直接打印 iframe 中的内容,而不会弹出打印对话框。需要注意的是,该方法仅在同一域名下的页面中有效,否则会报跨域错误。
jquery 前端浏览器调用打印机打印文件流 并设置静默打印
可以使用`window.print()`方法来实现浏览器调用打印机打印文件流的功能,但是无法设置为静默打印。如果需要实现静默打印,可以使用 ActiveX 控件或者 WebBrowser 控件来实现。以下是一个使用 ActiveX 控件的例子:
```html
<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function doPrint() {
var acro = new ActiveXObject("AcroPDF.PDF");
acro.src = "test.pdf";
acro.printAll();
}
</script>
</head>
<body>
<button onclick="doPrint()">Print</button>
</body>
</html>
```
在以上示例中,我们通过创建 ActiveX 对象 `AcroPDF.PDF`,并指定要打印的文件路径,然后调用 `printAll()` 方法实现打印。请注意,这种方法只能在 IE 浏览器中使用,而且需要用户在浏览器设置中启用 ActiveX 控件。因此,这种方法不是很推荐使用。
如果需要实现跨浏览器的静默打印功能,可以使用 WebBrowser 控件。以下是一个使用 WebBrowser 控件的例子:
```html
<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function doPrint() {
var webBrowser = document.getElementById("webBrowser");
webBrowser.src = "test.pdf";
webBrowser.execWB(6, 1);
}
</script>
</head>
<body>
<object id="webBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" style="display:none;"></object>
<button onclick="doPrint()">Print</button>
</body>
</html>
```
在以上示例中,我们创建了一个 WebBrowser 控件,并指定要打印的文件路径,然后调用 `execWB()` 方法实现打印。请注意,这种方法需要用户在浏览器设置中启用 ActiveX 控件,并且只能在 IE 浏览器中使用。
阅读全文