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:
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.
The process of converting PDF files to images is as follows:
The specific implementation steps and sample code are given below.
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:
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); });
is used Image Processing. The
and
fs modules are used for file reading and path processing.
module can be used to convert PDF files to images.
method is used to convert PDF pages to images.
imageMagick(imagePath) .resize(800) .quality(90) .write(filePath, function (err) { if (!err) { console.log('图片生成成功'); } });
method is used to resize the image.
method is used to adjust the image quality.
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); });
The above is the detailed content of nodejs pdf to image. For more information, please follow other related articles on the PHP Chinese website!