首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Node包或开源工具将pdf转换为图片

将 PDF 文件转换为图片是一个常见的需求,尤其是在需要预览 PDF 内容或进行图像处理时。在 Node.js 环境中,有多个包和开源工具可以实现这一功能。以下是一些常用的方法和工具:

1. 使用 pdf-poppler

pdf-poppler 是一个 Node.js 包,基于 Poppler 工具,可以将 PDF 转换为图像。

安装

首先,确保你已经安装了 Poppler 工具。你可以通过包管理器安装:

  • 在 Ubuntu 上: sudo apt-get install poppler-utils
  • 在 macOS 上: brew install poppler

然后,安装 pdf-poppler 包:

代码语言:javascript
复制
npm install pdf-poppler

使用示例

代码语言:javascript
复制
const pdfPoppler = require('pdf-poppler');
const path = require('path');

const file = path.join(__dirname, 'example.pdf');
const outputDir = path.join(__dirname, 'output');

const opts = {
    format: 'jpeg',
    out_dir: outputDir,
    out_prefix: path.basename(file, path.extname(file)),
    page: null // null means all pages
};

pdfPoppler.convert(file, opts)
    .then(res => {
        console.log('Successfully converted');
    })
    .catch(error => {
        console.error(error);
    });

2. 使用 pdf2pic

pdf2pic 是另一个流行的 Node.js 包,可以将 PDF 转换为图像。

安装

代码语言:javascript
复制
npm install pdf2pic

使用示例

代码语言:javascript
复制
const { fromPath } = require('pdf2pic');

const options = {
    density: 100,
    saveFilename: "untitled",
    savePath: "./output",
    format: "png",
    width: 600,
    height: 800
};

const storeAsImage = fromPath("example.pdf", options);

storeAsImage(1) // page number
    .then((resolve) => {
        console.log("Page 1 is now converted as image");
        return resolve;
    })
    .catch((error) => {
        console.error(error);
    });

3. 使用 pdf-libcanvas

你也可以使用 pdf-libcanvas 包来手动渲染 PDF 页面为图像。

安装

代码语言:javascript
复制
npm install pdf-lib canvas

使用示例

代码语言:javascript
复制
const { PDFDocument } = require('pdf-lib');
const { createCanvas, loadImage } = require('canvas');
const fs = require('fs');

async function pdfToImage(pdfPath, outputDir) {
    const pdfBytes = fs.readFileSync(pdfPath);
    const pdfDoc = await PDFDocument.load(pdfBytes);
    const pages = pdfDoc.getPages();

    for (let i = 0; i < pages.length; i++) {
        const page = pages[i];
        const viewport = page.getViewport({ scale: 1.0 });
        const canvas = createCanvas(viewport.width, viewport.height);
        const context = canvas.getContext('2d');

        const renderContext = {
            canvasContext: context,
            viewport: viewport
        };

        await page.render(renderContext).promise;

        const buffer = canvas.toBuffer('image/png');
        fs.writeFileSync(`${outputDir}/page-${i + 1}.png`, buffer);
    }
}

pdfToImage('example.pdf', './output')
    .then(() => {
        console.log('PDF successfully converted to images');
    })
    .catch((error) => {
        console.error(error);
    });

4. 使用 pdf-image

pdf-image 是一个基于 pdfinfopdftoppm 的 Node.js 包,可以将 PDF 转换为图像。

安装

首先,确保你已经安装了 poppler-utils

  • 在 Ubuntu 上: sudo apt-get install poppler-utils
  • 在 macOS 上: brew install poppler

然后,安装 pdf-image 包:

代码语言:javascript
复制
npm install pdf-image
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券