如何使用jsPDF合并两个PDF文件。

问题描述 投票:0回答:1

我想知道如何使用jsPDF将两个(或多个)PDF文件合并成一个文件,然后用用户的浏览器的pdf浏览器来显示。

我的需求是让打印一组文件的过程变得更容易。与其逐一打印,不如把它们合并起来,打印成一个文件。.

我在Stack Overflow上看了这个问题,但对我帮助不大,因为在这个案例中,他们是从HTML内容中创建pdf的,而在我的案例中,我必须将一组pdf文件合并在一起。将两个用jsPDF生成的PDF文件合并成一个文件。

我可以从一个url中获取我的PDF文件,或者也可以从它们中获取原始内容(base64代码),所以我想知道是否有一种方法可以使用这个库来实现它。如果有的话,我只需要知道使用什么方法,或者提供文档的链接(我也看到过文档,但没有找到)。

非常感谢您的回答,任何帮助都将被感激。Regards!

javascript jquery pdf merge jspdf
1个回答
0
投票

你可以把你的jsPDF文档变成一个数组缓冲区(看这里)

const doc = new jsPDF('p', 'mm', 'a4');
...
const arrayBuffer = doc.output('arraybuffer');

然后使用所给的解决方案 此处

async mergePdfs(pdfsToMerges: ArrayBuffer[]) {
  const mergedPdf = await PDFDocument.create();
  const actions = pdfsToMerges.map(async pdfBuffer => {
  const pdf = await PDFDocument.load(pdfBuffer);
  const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
  copiedPages.forEach((page) => {
    // console.log('page', page.getWidth(), page.getHeight());
    // page.setWidth(210);
    mergedPdf.addPage(page);
    });
  });
  await Promise.all(actions);
  const mergedPdfFile = await mergedPdf.save();
  return mergedPdfFile;
}
© www.soinside.com 2019 - 2024. All rights reserved.