用nodejs把多个PDF文件成为一个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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值