Home  >  Article  >  Web Front-end  >  nodejs pdf to image

nodejs pdf to image

WBOY
WBOYOriginal
2023-05-25 10:35:071890browse

Node.js is an open source platform for running JavaScript. It can run JavaScript code on the server side. It has become the first choice of many developers due to its efficiency and scalability. In Node.js, there are some very powerful packages and libraries that can easily implement various functions. Among them, the function we introduce today is how to convert PDF files into images, and the packages involved are pdf-poppler and gm.

Before converting PDF to image, you need to install the following environment:

  • Node.js
  • poppler-utils (for PDF processing)
  • GraphicsMagick/ImageMagick (for image processing)

Next, we first install the necessary two packages, open the terminal, and run the following command in the project directory:

npm install pdf-poppler gm --save

After the installation is complete, we can start using these two packages to implement the function of converting PDF to images.

Implementation ideas

The process of converting PDF files to images is as follows:

  1. Read PDF files;
  2. Convert PDF files to images in JPEG format ;
  3. Process the image.

Code implementation

The specific implementation steps and sample code are given below.

Step 1: Read the PDF file

const pdfPoppler = require('pdf-poppler');

const pdfPath = './example.pdf';

const opts = {
  format: 'jpeg',
  out_dir: './tmp',
  out_prefix: 'converted',
  page: null
};

pdfPoppler.convert(pdfPath, opts)
  .then(() => {
    console.log('PDF转换完成');
  })
  .catch((err) => {
    console.error(err);
  });

Code explanation:

  • pdf-popplerconvert# in the package ## Method is used to convert PDF files to images.
  • pdfPath is the path of the PDF file to be converted, format is the output format, the JPEG format is selected here, out_dir is the output directory, out_prefix is the output file name prefix, page is the PDF page to be converted, and the default is null, which means converting all pages.
Step 2: Convert PDF files to JPEG format images

const gm = require('gm').subClass({imageMagick: true});

const imageMagick = gm.subClass({imageMagick: true});
const path = require('path');
const fs = require('fs');
const PDFImage = require('pdf-image').PDFImage;

const pdfPath = './example.pdf';

const pdfImage = new PDFImage(pdfPath);

pdfImage.convertPage(0).then(function (imagePath) {
    const filePath = path.join('./tmp', 'converted-0.jpg');

    // 处理图片
    imageMagick(imagePath)
      //....
      .write(filePath, function (err) {
          if (!err) {
              console.log('图片生成成功');
          }
      });
}).catch(function (err) {
    console.error(err);
});

Code explanation:

  • gm is used Image Processing. The
  • path and fs modules are used for file reading and path processing.
  • pdf-image module can be used to convert PDF files to images.
  • convertPage method is used to convert PDF pages to images.
Step 3: Process the image

imageMagick(imagePath)
  .resize(800)
  .quality(90)
  .write(filePath, function (err) {
      if (!err) {
          console.log('图片生成成功');
      }
  });

Code explanation:

  • resize method is used to resize the image.
  • quality method is used to adjust the image quality.
Full code example:

const pdfPoppler = require('pdf-poppler');
const gm = require('gm').subClass({imageMagick: true});
const imageMagick = gm.subClass({imageMagick: true});
const path = require('path');
const fs = require('fs');
const PDFImage = require('pdf-image').PDFImage;

const pdfPath = './example.pdf';

const opts = {
  format: 'jpeg',
  out_dir: './tmp',
  out_prefix: 'converted',
  page: null
};

pdfPoppler.convert(pdfPath, opts)
  .then(() => {
    console.log('PDF转换完成');

    const pdfImage = new PDFImage(pdfPath);

    pdfImage.convertPage(0).then(function (imagePath) {
      const filePath = path.join('./tmp', 'converted-0.jpg');

      imageMagick(imagePath)
        .resize(800)
        .quality(90)
        .write(filePath, function (err) {
          if (!err) {
            console.log('图片生成成功');
          }
        });
    }).catch(function (err) {
      console.error(err);
    });

  })
  .catch((err) => {
    console.error(err);
  });

Summary

In this article, we introduced how to convert PDF files to JPEG format images using Node.js . The specific implementation process includes three steps: reading PDF files, converting PDF files into images, and processing images.

The function of converting PDF to images is needed in many business scenarios, such as electronic document management, online reading, etc. I hope this article can be helpful to you. If you still have questions or are interested in other Node.js development topics, please leave a message to communicate!

The above is the detailed content of nodejs pdf to image. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn