Node.js ialah platform sumber terbuka untuk menjalankan JavaScript Ia boleh menjalankan kod JavaScript pada bahagian pelayan Ia telah menjadi pilihan pertama banyak pembangun kerana kecekapan dan skalabilitinya. Dalam Node.js, terdapat beberapa pakej dan perpustakaan yang sangat berkuasa yang boleh melaksanakan pelbagai fungsi dengan mudah. Antaranya, fungsi yang kami perkenalkan hari ini ialah cara menukar fail PDF kepada imej, dan pakej yang terlibat ialah pdf-poppler
dan gm
.
Sebelum menukar PDF kepada imej, anda perlu memasang persekitaran berikut:
Seterusnya, kami memasang dua pakej yang diperlukan, buka terminal, dan jalankan arahan berikut dalam direktori projek:
npm install pdf-poppler gm --save
Selepas pemasangan selesai, kita boleh mula menggunakan kedua-dua pakej ini untuk merealisasikan fungsi menukar PDF kepada imej.
Proses menukar PDF kepada imej adalah seperti berikut:
Langkah pelaksanaan khusus dan kod sampel diberikan di bawah.
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); });
Penjelasan kod:
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); });
gm
path
digunakan untuk membaca fail dan pemprosesan laluan. Modul fs
pdf-image
convertPage
imageMagick(imagePath) .resize(800) .quality(90) .write(filePath, function (err) { if (!err) { console.log('图片生成成功'); } });
resize
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); });
Atas ialah kandungan terperinci nodejs pdf ke imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!