用nodejs把多个PDF文件成为一个PDF文件
nodejs把多个pdf文件合并成一个文件
·
用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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)