Heim  >  Artikel  >  Web-Frontend  >  nodejs pdf zum Bild

nodejs pdf zum Bild

WBOY
WBOYOriginal
2023-05-25 10:35:071882Durchsuche

Node.js ist eine Open-Source-Plattform zum Ausführen von JavaScript. Aufgrund ihrer Effizienz und Skalierbarkeit ist sie für viele Entwickler die erste Wahl. In Node.js gibt es einige sehr leistungsstarke Pakete und Bibliotheken, mit denen sich verschiedene Funktionen problemlos implementieren lassen. Unter anderem stellen wir heute die Funktion vor, wie man PDF-Dateien in Bilder umwandelt. Die beteiligten Pakete sind pdf-poppler und gm. pdf-popplergm

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

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

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

npm install pdf-poppler gm --save

安装完成后,我们就可以开始使用这两个包来实现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);
  });

代码解释:

  • 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);
});

代码解释:

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

第三步:对图片进行处理

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

代码解释:

  • resize方法用于调整图片大小。
  • quality
  • Bevor Sie PDF in ein Bild konvertieren, müssen Sie die folgende Umgebung installieren:
  • Node.js

  • poppler-utils (für die PDF-Verarbeitung)
  • GraphicsMagick/ImageMagick (zur Bildbearbeitung)

    Als nächstes installieren wir zunächst die notwendigen zwei Pakete, öffnen das Terminal und führen im Projektverzeichnis den folgenden Befehl aus :

    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);
      });

    Nach Abschluss der Installation können wir mit der Verwendung dieser beiden Pakete beginnen, um die Funktion der Konvertierung von PDF in Bilder zu realisieren.

    #🎜🎜#Implementierungsideen#🎜🎜##🎜🎜#Der Prozess der Konvertierung von PDF in Bilder ist wie folgt: #🎜🎜#
    1. PDF-Dateien lesen; Konvertieren Sie PDF-Dateien. Konvertieren Sie Bilder im JPEG-Format. #🎜🎜#
    2. Verarbeiten Sie die Bilder. #🎜🎜#
    #🎜🎜#Code-Implementierung#🎜🎜##🎜🎜#Die spezifischen Implementierungsschritte und Beispielcode sind unten angegeben. #🎜🎜#

    Schritt 1: PDF-Datei lesen

    rrreee#🎜🎜# Code-Erklärung: #🎜🎜#
    • pdf-popppler im Paket Das convert wird zum Konvertieren von PDF-Dateien in Bilder verwendet. #🎜🎜#
    • pdfPath ist der Pfad der zu konvertierenden PDF-Datei, format ist das Ausgabeformat, hier wird das JPEG-Format ausgewählt, out_dir ist das Ausgabeverzeichnis, out_prefix ist das Präfix des Ausgabedateinamens, page ist die zu konvertierende PDF-Seite und der Standardwert ist null, was bedeutet, dass alles konvertiert wird Seiten. #🎜🎜##🎜🎜#

      Schritt 2: PDF-Dateien in Bilder im JPEG-Format konvertieren

      rrreee#🎜🎜# Code-Erklärung: #🎜🎜#
      • gm Wird zur Bildverarbeitung verwendet. #🎜🎜#
      • path- und fs-Module werden zum Lesen von Dateien und zur Pfadverarbeitung verwendet. #🎜🎜#
      • pdf-image-Modul kann zum Konvertieren von PDF-Dateien in Bilder verwendet werden. #🎜🎜#
      • convertPage-Methode wird zum Konvertieren von PDF-Seiten in Bilder verwendet. #🎜🎜##🎜🎜#

        Schritt 3: Verarbeiten Sie das Bild

        rrreee#🎜🎜#Code-Erklärung: #🎜🎜#
        • Resize-Methode Wird verwendet Größe von Bildern ändern. #🎜🎜#
        • quality-Methode wird zum Anpassen der Bildqualität verwendet. #🎜🎜##🎜🎜##🎜🎜#Vollständiges Codebeispiel: #🎜🎜#rrreee#🎜🎜#Zusammenfassung#🎜🎜##🎜🎜#In diesem Beitrag haben wir vorgestellt, wie man PDF mit Node.js in PDF konvertiert Konvertieren Sie die Datei in ein Bild im JPEG-Format. Der spezifische Implementierungsprozess umfasst drei Schritte: Lesen von PDF-Dateien, Konvertieren von PDF-Dateien in Bilder und Verarbeiten von Bildern. #🎜🎜##🎜🎜#Die Funktion zum Konvertieren von PDF-Dateien in Bilder wird in vielen Geschäftsszenarien benötigt, z. B. bei der elektronischen Dokumentenverwaltung, beim Online-Lesen usw. Ich hoffe, dass dieser Artikel für Sie hilfreich sein kann. Wenn Sie noch Fragen haben oder an anderen Node.js-Entwicklungsthemen interessiert sind, hinterlassen Sie bitte eine Nachricht zur Kommunikation! #🎜🎜#

Das obige ist der detaillierte Inhalt vonnodejs pdf zum Bild. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn