node图片生成pdf
这里用到pdf-lib
库
yarn add pdf-lib
1
基本使用
const {PDFDocument} = require('pdf-lib')
const fs = require('fs')
const path = require('path')
;(async function(){
// 创建pdf文档
const doc = await PDFDocument.create()
// 图片列表
const imgs = [...]
for (const key in imgs) {
if (Object.hasOwnProperty.call(imgs, key)) {
const element = imgs[key];
// 构件PDFImage
// 图片可以是base64、Uint8Array、ArrayBuffer的
const image = await doc.embedPng(element)
// 新增页-指定为图片的宽高
const pdfPage = doc.addPage([image.width, image.height])
// 页绘制图片
pdfPage.drawImage(image, {
x: 0,
y: 0,
width: image.width,
height: image.height,
})
}
}
// 构件pdf,返回Uint8Array
const pdfBuffer = await doc.save()
// 保存pdf文件
fs.writeFile(path.resolve(__dirname, `../download/${filname}.pdf`), pdfBuffer, (err) => {
console.log('生成完成', err);
})
})();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
上次更新: 2023/09/22, 16:54:32