Nodejs PDFから画像へ

WBOY
リリース: 2023-05-25 10:35:07
オリジナル
1814 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!