nodejs pdf en image

WBOY
Libérer: 2023-05-25 10:35:07
original
1905 Les gens l'ont consulté

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-popplergm

在实现PDF转图片前,你需要安装好以下环境:

  • Node.js
  • poppler-utils(用于PDF处理)
  • GraphicsMagick/ImageMagick(用于图片处理)

接下来,我们先安装必要的两个包,打开终端,在项目目录下运行以下命令:

npm install pdf-poppler gm --save
Copier après la connexion

安装完成后,我们就可以开始使用这两个包来实现PDF转图片的功能了。

实现思路

PDF转图片的流程如下:

  1. 读取PDF文件;
  2. 将PDF文件转换为JPEG格式的图片;
  3. 对图片进行处理。

代码实现

下面给出具体的实现步骤及示例代码。

第一步:读取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);
  });
Copier après la connexion

代码解释:

  • pdf-poppler包中的convert方法用于将PDF文件转换为图片。
  • pdfPath为待转换的PDF文件路径,format为输出格式,这里选择的是JPEG格式,out_dir为输出目录,out_prefix为输出文件名前缀,page为要转换的PDF页面,默认为 null,表示转换所有页面。

第二步:将PDF文件转换为JPEG格式的图片

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);
});
Copier après la connexion

代码解释:

  • gm用于图像处理。
  • pathfs模块用于读取文件和路径处理。
  • pdf-image模块可用于将PDF文件转换为图像。
  • convertPage方法用于将PDF页面转换为图像。

第三步:对图片进行处理

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

代码解释:

  • resize方法用于调整图片大小。
  • quality
  • Avant de convertir un PDF en image, vous devez installer l'environnement suivant :
  • Node.js

  • poppler-utils (pour le traitement des PDF)

  • GraphicsMagick/ImageMagick (pour le traitement d'image)

    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);
      });
    Copier après la connexion

    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 : #🎜🎜#
    1. Lire les fichiers PDF #🎜🎜#
    2. Convertir des fichiers PDF Convertissez en images au format JPEG ; #🎜🎜#
    3. Traitez les images. #🎜🎜#
    #🎜🎜#Implémentation du code#🎜🎜##🎜🎜#Les étapes d'implémentation spécifiques et un exemple de code sont donnés ci-dessous. #🎜🎜#

    Étape 1 : Lire le fichier PDF

    rrreee#🎜🎜# Explication du code : #🎜🎜#
    • pdf-poppler dans le package Le convert est utilisée pour convertir des fichiers PDF en images. #🎜🎜#
    • pdfPath est le chemin du fichier PDF à convertir, format est le format de sortie, ici le format JPEG est sélectionné, out_dir est le répertoire de sortie, out_prefix est le préfixe du nom du fichier de sortie, page est la page PDF à convertir et la valeur par défaut est null, ce qui signifie que tout est converti. pages. #🎜🎜##🎜🎜#

      Étape 2 : Convertir les fichiers PDF en images au format JPEG

      rrreee#🎜🎜# Explication du code : #🎜🎜#
      • 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. #🎜🎜##🎜🎜#

        Étape 3 : Traitez l'image

        rrreee#🎜🎜#Explication du code : #🎜🎜#
        • 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal