Javascript 如何打印多个PDF';s在angular 9中使用print.js
我曾尝试使用库打印PDF,它可以很好地打印单个PDF。现在,当我试图打印多个PDF时,它抛出了一个错误:错误多选。。此外,我也尝试过使用纯JS,但它会多次提示输入多个文档 下面是我们正在使用的代码Javascript 如何打印多个PDF';s在angular 9中使用print.js,javascript,angular,typescript,angular9,printjs,Javascript,Angular,Typescript,Angular9,Printjs,我曾尝试使用库打印PDF,它可以很好地打印单个PDF。现在,当我试图打印多个PDF时,它抛出了一个错误:错误多选。。此外,我也尝试过使用纯JS,但它会多次提示输入多个文档 下面是我们正在使用的代码 printJS({ printable: ['dummy.pdf', 'dummy1.pdf'], type:'pdf' }); 请找到附件 任何帮助都非常感谢 目前print.js不支持打印多个文件。我会尝试先将这些文件合并成一个文件,然后
printJS({
printable: ['dummy.pdf', 'dummy1.pdf'],
type:'pdf'
});
请找到附件
任何帮助都非常感谢 目前print.js不支持打印多个文件。我会尝试先将这些文件合并成一个文件,然后再打印一个文件。这将仅创建一个打印预览,提供更好的用户体验 作为解决方法,您可以使用onPrintDialogClose事件
printJS({
printable: 'page01.pdf',
type: 'pdf',
onPrintDialogClose: function() {
printJS('page02.pdf');
}
})
根据
可打印-文档源:pdf或图像url、html元素id或json
数据对象
它意味着每次只允许一个可打印文件
因此,我将尝试循环介绍它的基本用法(调用printJS()
,然后传入一个PDF文档url)
var-pdfs_list=['dummy.pdf','dummy1.pdf'];
对于(var i=0;i
要么这样,要么像建议的那样将文件连接到服务器端。最后,在花了一周的时间后,我能够在angular 9中使用print.js打印多个PDF。 以下是打印多个PDF的以下步骤:
npm i pdf lib
打印PDF文件
参考资料:您是否尝试过循环希望打印的PDF阵列?发送多个打印命令?谢谢你的建议。你能告诉我如何将多个PDF合并到一个文件中吗?如何在客户端将多个PDF合并到一个文件中?@Priyank我建议在服务器端这样做。如果这是不可能的,这里有一个pdf.js示例,我们如何使用上述解决方案打印pdf和图像?我们如何使用print.js打印pdf和图像?@Priyank如果您有其他问题,请随时提问。要打印图像,文档显示
printJS('images/print-01-highres.jpg','image')
。基本上是一样的,但必须传递第二个参数,名为image
。所以,你可以用不同的方法来做。如果只有.pdf文件和图像,可以在循环中使用If语句,并检查数组的该项是否为.pdf;否则,将该方法与第二个参数一起使用。
var pdfs_list = ['dummy.pdf', 'dummy1.pdf'];
for (var i = 0; i < pdfs_list.length; i++) {
printJS(pdfs_list[i]);
}
import { PDFDocument } from 'pdf-lib'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'print-multiple-pdfs';
/* Convert the merged pdf array buffer to blob url for print or open in browser.*/
downloadFile(data) {
const blob = new Blob([data], { type: 'application/pdf' });
const url= window.URL.createObjectURL(blob);
//window.open(url);
printJS({
printable: url,
type: 'pdf',
})
}
async printPDFS() {
/* Array of pdf urls */
let pdfsToMerge = ['https://cors-anywhere.herokuapp.com/https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf', 'https://cors-anywhere.herokuapp.com/http://africau.edu/images/default/sample.pdf', 'https://cors-anywhere.herokuapp.com/https://www.hq.nasa.gov/alsj/a17/A17_FlightPlan.pdf']
const mergedPdf = await PDFDocument.create();
for (const pdfCopyDoc of pdfsToMerge) {
const pdfBytes = await fetch(pdfCopyDoc).then(res => res.arrayBuffer())
//const pdfBytes = fs.readFileSync(pdfCopyDoc);
const pdf = await PDFDocument.load(pdfBytes);
const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
copiedPages.forEach((page) => {
mergedPdf.addPage(page);
});
}
const mergedPdfFile = await mergedPdf.save();
this.downloadFile(mergedPdfFile);
}
}