ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejs PDFから画像へ

Nodejs PDFから画像へ

WBOY
WBOYオリジナル
2023-05-25 10:35:071890ブラウズ

Node.js は、JavaScript を実行するためのオープン ソース プラットフォームです。サーバー側で JavaScript コードを実行できます。その効率性と拡張性により、多くの開発者の最初の選択肢となっています。 Node.js には、さまざまな機能を簡単に実装できる非常に強力なパッケージとライブラリがいくつかあります。その中で今回紹介する機能はPDFファイルを画像に変換する機能で、関係するパッケージはpdf-popplergmです。

PDF を画像に変換する前に、次の環境をインストールする必要があります:

  • Node.js
  • poppler-utils (PDF 処理用)
  • GraphicsMagick/ImageMagick (画像処理用)

次に、最初に必要な 2 つのパッケージをインストールし、ターミナルを開き、プロジェクト ディレクトリで次のコマンドを実行します:

npm install pdf-poppler gm --save

インストールが完了したら、これら 2 つのパッケージを使用して、PDF を画像に変換する機能の実装を開始できます。

実装アイデア

PDF ファイルを画像に変換するプロセスは次のとおりです:

  1. PDF ファイルを読み取る;
  2. PDF ファイルを画像に変換するJPEG 形式 ;
  3. 画像を処理します。

コードの実装

具体的な実装手順とサンプル コードを以下に示します。

ステップ 1: 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-popplerconvert# パッケージ # # PDFファイルを画像に変換するメソッドです。
  • pdfPath は変換する PDF ファイルのパスです。format は出力形式です。ここでは JPEG 形式が選択されています。out_dirは出力ディレクトリ、out_prefix は出力ファイル名のプレフィックス、page は変換する PDF ページです。デフォルトは null で、すべてのページを変換することを意味します。
ステップ 2: 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 は画像処理に使用されます。
  • path モジュールと fs モジュールは、ファイルの読み取りとパスの処理に使用されます。
  • pdf-image モジュールを使用して、PDF ファイルを画像に変換できます。
  • convertPage メソッドは、PDF ページを画像に変換するために使用されます。
ステップ 3: 画像を処理する

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

概要

この記事では、Node.js を使用して PDF ファイルを JPEG 形式の画像に変換する方法を紹介しました。具体的な実装プロセスには、PDF ファイルの読み取り、PDF ファイルの画像への変換、画像の処理の 3 つのステップが含まれます。

PDFを画像に変換する機能は、電子文書管理やオンライン閲覧など、多くのビジネスシーンで必要となります。この記事がお役に立てば幸いです。まだ質問がある場合、または他の Node.js 開発トピックに興味がある場合は、メッセージを残して連絡してください。

以上がNodejs PDFから画像への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。