jquery 连接打印机 打印文件流 并跳过预览
时间: 2023-08-15 15:04:53 浏览: 65
要使用 jQuery 连接打印机并打印文件流,您需要使用 JavaScript 中的 `window.print()` 方法。但是,由于浏览器的安全限制,您不能直接使用 `window.print()` 方法打印文件流,也无法跳过打印预览。
不过,您可以考虑使用第三方库来实现该功能,例如:jzebra、QZ Tray 等。这些库可以让您通过浏览器连接打印机,并打印文件流,同时可以跳过打印预览。
以下是使用 jzebra 库连接打印机并打印文件流的示例代码:
```javascript
// 引入 jzebra 库
<script src="jquery.min.js"></script>
<script src="jzebra.js"></script>
// 打印文件流
function printFile(file) {
// 创建 jzebra 打印对象
var printer = new jzebra.Printer();
// 连接打印机
printer.append('\n');
printer.findPrinter();
printer.append('\n');
// 打印文件流
printer.appendFile(file);
// 发送打印命令
printer.print();
}
```
需要注意的是,jzebra 库需要在本地安装打印机驱动程序,并且只支持 Windows 操作系统。如果您需要在其他操作系统上使用类似的功能,可以考虑使用其他库或者工具。
相关问题
jquery ajax 调用打印机打印文件流 并跳过预览
实现 jQuery Ajax 调用打印机打印文件流并跳过预览的步骤如下:
1. 使用 jQuery 的 Ajax 方法向服务器发送请求,获取需要打印的文件流数据。
2. 使用 JavaScript 的 Blob 对象将文件流数据转换为二进制文件对象。
3. 使用 FileReader 对象读取二进制文件对象,获取文件内容并将其转换为 ArrayBuffer。
4. 使用 window.URL.createObjectURL 方法将 ArrayBuffer 转换为 URL 对象,以便在打印机上打印。
5. 创建一个新的 iframe 元素,将其 src 属性设置为上一步中获取的 URL 对象。
6. 使用 JavaScript 的 print 方法打印 iframe 中的内容。
以下是基本的代码示例:
```
$.ajax({
url: '/path/to/file',
type: 'GET',
dataType: 'arraybuffer',
success: function (data) {
var blob = new Blob([data], {type: 'application/pdf'});
var fileReader = new FileReader();
fileReader.onload = function() {
var arrayBuffer = this.result;
var url = window.URL.createObjectURL(new Blob([arrayBuffer]));
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.src = url;
document.body.appendChild(iframe);
iframe.contentWindow.print();
};
fileReader.readAsArrayBuffer(blob);
}
});
```
这段代码将获取一个 PDF 文件流,并将其转换为 URL 对象,然后在 iframe 中打印。你可以将文件类型和 URL 对象的创建方法替换为你需要打印的文件类型和相应的方法。
jquery 调用打印机打印文件流 并且跳过预览
可以使用`window.print()`方法调用打印机打印文件流,但是无法跳过预览。如果要跳过预览,需要使用浏览器的插件或者ActiveX控件来实现。下面是一个使用ActiveX控件实现的示例代码:
```javascript
function printFile(filePath) {
try {
var ws = new ActiveXObject("WScript.Shell");
ws.Exec("rundll32.exe C:\\WINDOWS\\system32\\shimgvw.dll,ImageView_PrintTo /pt \"" + filePath + "\"");
} catch (e) {
alert("打印文件失败:" + e.message);
}
}
```
在上面的代码中,`filePath`参数为要打印的文件路径,例如:`C:\Users\test\Documents\test.pdf`。调用`printFile()`函数即可打印该文件,不会弹出预览窗口。但是需要注意的是,该方法只适用于Windows操作系统。