使用原生js不使用库实现将多个pdf的blob拼接在一起进行打印
要实现将多个PDF的blob拼接在一起进行打印,可以按照以下步骤进行操作:
- 创建一个空的Blob对象,用于存储所有PDF的内容。
- 使用fetch函数或XMLHttpRequest对象,从服务器上获取每个PDF的blob数据。
- 将每个PDF的blob数据追加到空的Blob对象中。
- 使用URL.createObjectURL()函数将Blob对象转换为可打印的URL。
- 使用window.open()函数打开打印预览窗口,将URL作为参数传递给该函数。
以下是一个示例代码:
// 创建一个空的Blob对象
var combinedBlob = new Blob();
// 保存每个PDF的blob数据
var pdfBlobs = [];
// 获取每个PDF的blob数据
fetch('url_to_pdf_1')
.then(function(response) {
return response.blob();
})
.then(function(blob) {
pdfBlobs.push(blob);
})
.then(function() {
return fetch('url_to_pdf_2');
})
.then(function(response) {
return response.blob();
})
.then(function(blob) {
pdfBlobs.push(blob);
})
.then(function() {
// 将每个PDF的blob数据追加到空的Blob对象中
pdfBlobs.forEach(function(pdfBlob) {
combinedBlob = new Blob([combinedBlob, pdfBlob], { type: 'application/pdf' });
});
// 将Blob对象转换为可打印的URL
var combinedUrl = URL.createObjectURL(combinedBlob);
// 打开打印预览窗口
window.open(combinedUrl);
});
请注意,上述代码仅为示例,并未进行错误处理和完整性检查。在实际应用中,您可能需要根据实际情况进行适当的错误处理和调整
原文地址: http://www.cveoy.top/t/topic/issI 著作权归作者所有。请勿转载和采集!