Node.js est une plateforme open source pour exécuter JavaScript. Elle peut exécuter du code JavaScript côté serveur. Elle est devenue le premier choix de nombreux développeurs en raison de son efficacité et de son évolutivité. Dans Node.js, il existe des packages et des bibliothèques très puissants qui peuvent facilement implémenter diverses fonctions. Parmi eux, la fonction que nous introduisons aujourd'hui est de savoir comment convertir des fichiers PDF en images. Les packages impliqués sont pdf-poppler
et gm
. pdf-poppler
和gm
。
在实现PDF转图片前,你需要安装好以下环境:
接下来,我们先安装必要的两个包,打开终端,在项目目录下运行以下命令:
npm install pdf-poppler gm --save
安装完成后,我们就可以开始使用这两个包来实现PDF转图片的功能了。
PDF转图片的流程如下:
下面给出具体的实现步骤及示例代码。
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); });
代码解释:
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
和fs
模块用于读取文件和路径处理。pdf-image
模块可用于将PDF文件转换为图像。convertPage
方法用于将PDF页面转换为图像。imageMagick(imagePath) .resize(800) .quality(90) .write(filePath, function (err) { if (!err) { console.log('图片生成成功'); } });
代码解释:
resize
方法用于调整图片大小。quality
Ensuite, nous installons d'abord les deux packages nécessaires, ouvrons le terminal et exécutons la commande suivante dans le répertoire du projet :
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); });
Une fois l'installation terminée, nous pouvons commencer à utiliser ces deux packages pour réaliser la fonction de conversion de PDF en images.
#🎜🎜#Idées de mise en œuvre#🎜🎜##🎜🎜#Le processus de conversion de PDF en images est le suivant : #🎜🎜#gm
Utilisé pour le traitement d'image. #🎜🎜#Les modules path
et fs
sont utilisés pour la lecture des fichiers et le traitement des chemins. Le module #🎜🎜#pdf-image
peut être utilisé pour convertir des fichiers PDF en images. La méthode #🎜🎜#convertPage
est utilisée pour convertir les pages PDF en images. #🎜🎜##🎜🎜#méthode de redimensionnement
Utilisée pour redimensionner les images. La méthode #🎜🎜#quality
est utilisée pour ajuster la qualité de l'image. #🎜🎜##🎜🎜##🎜🎜#Exemple de code complet : #🎜🎜#rrreee#🎜🎜#Summary#🎜🎜##🎜🎜#Dans cet article, nous avons présenté comment convertir un PDF en PDF à l'aide de Node.js Convertissez le fichier en image au format JPEG. Le processus de mise en œuvre spécifique comprend trois étapes : la lecture des fichiers PDF, la conversion des fichiers PDF en images et le traitement des images. #🎜🎜##🎜🎜#La fonction de conversion de PDF en images est nécessaire dans de nombreux scénarios commerciaux, tels que la gestion électronique de documents, la lecture en ligne, etc. J'espère que cet article pourra vous être utile. Si vous avez encore des questions ou êtes intéressé par d'autres sujets de développement Node.js, veuillez laisser un message pour communiquer ! #🎜🎜#Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!