前端将pdf转为图片格式

226 阅读1分钟
// 引入pdf.js库
import pdfjsLib from 'pdfjs-dist';

// 定义函数,将pdf转成图片
async function convertPdfToImage(pdfUrl) {
  const pdf = await pdfjsLib.getDocument(pdfUrl).promise;
  const canvas = document.createElement('canvas');
  const context = canvas.getContext('2d');
  
  // 循环遍历每一页pdf,将其转成图片
  for (let i = 1; i <= pdf._pdfInfo.numPages; i++) {
    // 获取pdf页
    const page = await pdf.getPage(i);

    // 获取页的尺寸
    const viewport = page.getViewport({ scale: 1 });

    // 设置canvas的尺寸
    canvas.width = viewport.width;
    canvas.height = viewport.height;

    // 将pdf页渲染到canvas上
    await page.render({ canvasContext: context, viewport: viewport }).promise;

    // 将canvas转成图片,并添加到页面上
    const img = document.createElement('img');
    img.src = canvas.toDataURL('image/png');
    document.body.appendChild(img);
  }
}

// 调用函数,将pdf转成图片
const pdfUrl = 'https://example.com/pdf-file.pdf';
convertPdfToImage(pdfUrl);