用nodejs把多个PDF文件成为一个PDF文件
1、先下载 pdf-lib包
cnpm install pdf-lib
2、新建文件夹pdf 文件夹和pool文件夹
pdf文件夹是存放pdf原始文件,pool是合并后的文件夹
3、复制代码到pdf.js
const path = require('path')
const fs = require("fs");
// 获取要合并的pdf集合
const files = fs.readdirSync('./pdf')
// 要合并的PDF文件存放路径
const filesp = path.resolve(__dirname,'./pdf')
// 改路径
let sourceFiles = [];
files.forEach(v => {
let file = filesp + `\\` +v;
sourceFiles.push(file)
});
/**
* 合并多个PDF为一个PDF文件
* 这个是使用的pdf-lib 对PDF进行合并
*/
const { PDFDocument } = require('pdf-lib')
const mergePDF = async ({ sourceFiles, outputFile }) => {
const pdfDoc = await PDFDocument.create()
for (let i = 0; i < sourceFiles.length; i++) {
const localPath = sourceFiles[i]
const PDFItem = await PDFDocument.load(fs.readFileSync(localPath))
for (let j = 0; j < PDFItem.getPageCount(); j++) {
const [PDFPageItem] = await pdfDoc.copyPages(PDFItem, [j])
pdfDoc.addPage(PDFPageItem)
}
}
const pdfBytes = await pdfDoc.save()
fs.writeFileSync(outputFile, pdfBytes)
}
const go = async () => {
const time = Date.now()
await mergePDF({
sourceFiles,
// 合并的文件路径
outputFile: path.resolve(__dirname, './pool/output2.pdf'
),
})
console.log(`test2耗时:${Date.now() - time}ms`)
}
go()
4、运行代码
node pdf.js