这可能是由于每个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文档了

const combinedBlob = new BlobpdfBlobs type applicationpdf ;拼接多个blob后显示pdf合并后的pdf只显示了最后一页

原文地址: http://www.cveoy.top/t/topic/isuP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录