项目里引用的是 pdfh5 的包 所以直接就用这个整
const pdfjs = require("pdfh5/js/pdf")
const pdfWorker = require("pdfh5/js/pdf.worker")
pdfjs.GlobalWorkerOptions.workerSrc = pdfWorker
// pdf 转图片
export const pdfToImage = async (pdfUrl) => {
try {
let imageBaseUrlList = []
const pdfDoc = await pdfjs.getDocument(pdfUrl).promise
const totalPage = pdfDoc.numPages
for (let i = 1
const page = await pdfDoc.getPage(i)
let scaledViewport = page.getViewport({ scale: 1.5 })
let canvas = document.createElement("canvas")
canvas.height = scaledViewport.height
canvas.width = scaledViewport.width
let context = canvas.getContext("2d")
let renderContext = {
canvasContext: context,
viewport: scaledViewport,
}
await page.render(renderContext)
const jpgBase64 = canvas.toDataURL("image/jpeg")
imageBaseUrlList.push({ url: jpgBase64, t: i })
canvas.remove()
if (imageBaseUrlList.length === totalPage) {
imageBaseUrlList.sort((a, b) => a.t - b.t)
return imageBaseUrlList.map((item) => item.url)
}
}
} catch (error) {
return error
}
}