import {PDFDocument} from 'pdf-lib';
async mergePdf(urlList, fileName){ // urlList 单个PDF文件的URL
const promises = _.map(urlList, async url => {
try {
const response = await axios({
method: 'get',
url,
responseType: 'arraybuffer'
});
return Buffer.from(response.data);
} catch (ignored) {}
});
const pdfBuffers = await Promise.all(promises);
const newPdf = await PDFDocument.create();
for (let buffer of pdfBuffers) {
const pdfDocument = await PDFDocument.load(buffer);
const contentPages = await newPdf.copyPages(pdfDocument, pdfDocument.getPageIndices());
for (let page of contentPages) {
newPdf.addPage(page);
}
}
const uint8Array = await newPdf.save();
let mergeBuffer = Buffer.from(uint8Array);
const url = window.URL.createObjectURL(new Blob([mergeBuffer]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
}