const combinedBlob = new BlobpdfBlobs type applicationpdf ;拼接多个blob后显示pdf合并后的pdf只显示了最后一页
这可能是由于每个Blob都代表了一个完整的PDF文件,当你将多个Blob合并成一个Blob时,只有最后一个Blob的内容会显示出来。如果你想要显示多个PDF文件的所有页数,你需要使用其他的方法来合并这些PDF文件,而不仅仅是将它们的Blob对象合并。
一种可行的方法是使用第三方库,如pdf-lib或pdf.js,它们提供了更多高级的PDF操作功能。你可以使用这些库来解析每个PDF文件,提取它们的页数,并将它们逐页地合并到一个新的PDF文件中。这样,你就可以显示所有的页数了。以下是使用pdf-lib库来合并多个PDF文件的示例代码:
const { PDFDocument } = require('pdf-lib');
async function mergePDFs(pdfBlobs) {
// 创建一个新的PDF文档
const mergedPDF = await PDFDocument.create();
// 遍历每个PDF Blob
for (const blob of pdfBlobs) {
// 读取Blob内容并将其解析为PDF文档
const pdfDoc = await PDFDocument.load(await blob.arrayBuffer());
// 获取PDF文档的所有页
const pages = await mergedPDF.copyPages(pdfDoc, pdfDoc.getPageIndices());
// 将每个页添加到新的PDF文档中
for (const page of pages) {
mergedPDF.addPage(page);
}
}
// 将合并后的PDF文档转换为Blob对象
const mergedBlob = await mergedPDF.saveAsBlob();
// 显示合并后的PDF文档
const mergedUrl = URL.createObjectURL(mergedBlob);
window.open(mergedUrl);
}
mergePDFs(pdfBlobs);
请注意,上述代码使用了pdf-lib库来处理PDF文件。你需要先安装pdf-lib库,并将其引入到你的项目中。安装命令如下:
npm install pdf-lib
这样,你就可以使用pdf-lib库来合并多个PDF文件,并显示合并后的PDF文档了
原文地址: http://www.cveoy.top/t/topic/isuP 著作权归作者所有。请勿转载和采集!