jquery 打印文件流并跳过预览
时间: 2023-07-31 19:08:28 浏览: 78
要实现打印文件流并跳过预览,可以使用以下代码:
```javascript
$.ajax({
url: "path/to/file.pdf",
method: "GET",
xhrFields: {
responseType: 'blob'
},
success: function(data) {
// 创建一个隐藏的 iframe 元素
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
document.body.appendChild(iframe);
// 将文件流转换为 blob 对象,并在 iframe 中打印
var file = new Blob([data], {type: 'application/pdf'});
var fileUrl = URL.createObjectURL(file);
iframe.src = fileUrl;
iframe.contentWindow.print();
}
});
```
这段代码会通过 Ajax 获取 PDF 文件的文件流,将其转换为 Blob 对象,并在隐藏的 iframe 中打印。由于 iframe 是隐藏的,因此不会显示预览。
相关问题
jquery 打印文件流并跳过预览 调用打印机打印
可以使用 JavaScript 的 `window.print()` 方法来调用打印机进行打印。不过,如果要直接打印文件流并跳过预览,需要使用一些特定的技术。
以下是通过 jQuery 实现此目标的代码示例:
```javascript
// 获取文件流
var fileStream = "path/to/file.pdf";
// 通过 AJAX 请求获取文件二进制数据
$.ajax({
url: fileStream,
method: "GET",
xhrFields: {
responseType: "blob"
},
success: function(data) {
// 创建 URL 对象
var fileUrl = URL.createObjectURL(data);
// 创建隐藏的 iframe 元素
var $iframe = $("<iframe/>");
// 隐藏 iframe
$iframe.css("display", "none");
// 添加 iframe 到 DOM 中
$("body").append($iframe);
// 将 iframe 的 src 属性设置为文件 URL
$iframe.attr("src", fileUrl);
// 等待一段时间后,调用 window.print() 方法
setTimeout(function() {
$iframe.get(0).contentWindow.print();
}, 1000);
}
});
```
在上面的代码中,我们首先通过 AJAX 请求获取文件二进制数据,并将其转换为 URL 对象。然后,我们创建一个隐藏的 iframe 元素,并将其 src 属性设置为文件 URL。最后,我们等待一段时间后调用 `window.print()` 方法来触发打印操作。
需要注意的是,由于浏览器的安全限制,我们无法直接打印文件流,必须将其转换为 URL 对象。此外,由于打印操作需要时间,我们需要等待一段时间后再调用 `window.print()` 方法。
jquery 连接打印机 打印文件流 并跳过预览
要使用 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 操作系统。如果您需要在其他操作系统上使用类似的功能,可以考虑使用其他库或者工具。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)