ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsを使用してHTMLをPDFに変換する

Nodejsを使用してHTMLをPDFに変換する

WBOY
WBOYオリジナル
2023-05-12 12:28:371472ブラウズ

インターネット技術の継続的な発展に伴い、共有やダウンロードを容易にするために、Web コンテンツを PDF 形式に変換する必要があるアプリケーションがますます増えています。このプロセスでは、Node.js を HTML ドキュメントを PDF 形式に変換する強力なツールとして使用できます。この記事では、Node.js を使用して HTML を PDF に変換するプロセスについて説明します。

  1. 必要な依存関係をインストールする

始める前に、次の必要なパッケージをシステムにインストールする必要があります:

  • Node.js 開発環境
  • npm - Node.js パッケージマネージャー
  • wkhtmltopdf - Web ページから PDF を生成するツール

Wkhtmltopdf は WebKit エンジンをベースにしたコマンドです。 HTML ドキュメントを PDF ファイルに変換できるオンライン ツールで、透かし、ヘッダーとフッター、その他多くの機能の追加もサポートしています。

Ubuntu システムでは、次のコマンドで wkhtmltopdf をインストールできます:

sudo apt-get install wkhtmltopdf
  1. 依存関係のインストール

次に、pdfkit と fs モジュールをインストールする必要があります。 、どちらも npm パッケージ マネージャーを通じてインストールできます。

コマンド ラインに次のコマンドを入力してインストールします:

npm install pdfkit
npm install fs
  1. コードの記述

関連する依存関係をインストールした後、JavaScript コードの記述を開始できます。 。 「html-to-pdf.js」という名前のファイルを作成し、次のコードを記述します:

const pdfkit = require('pdfkit');
const fs = require('fs');
const wkhtmltopdf = require('wkhtmltopdf');

// 生成 PDF
function generatePDF(html, options, callback) {
    // 创建文件流
    const inputStream = fs.createReadStream(html);

    // 调用 wkhtmltopdf
    wkhtmltopdf(inputStream, options, (error, stream) => {
        if (error) {
            callback(error);
        } else {
            callback(null, stream);
        }
    });
}

// 写 PDF
function writePDF(doc, path, callback) {
    const writeStream = fs.createWriteStream(path);

    writeStream.on('error', (error) => {
        callback(error);
    });

    doc.pipe(writeStream);

    doc.end();
}

// 创建 PDF
function createPDF(html, path, options, callback) {
    const doc = new pdfkit();

    generatePDF(html, options, (error, stream) => {
        if (error) {
            callback(error);
        } else {
            doc.on('pageAdded', () => {
                doc.image(stream, {
                    fit: [doc.page.width - 100, doc.page.height - 100],
                    align: 'center',
                    valign: 'center'
                });
            });

            doc.pipe(fs.createWriteStream(path));

            doc.end();

            callback(null, path);
        }
    });
}

// 导出模块
module.exports = {
    createPDF,
    writePDF,
    generatePDF
};

このコードでは、pdfkit、fs、および wkhtmltopdf モジュールを導入し、generatePDF、writePDF、および 3 つの関数を記述しました。 PDFを作成します。

generatePDF 関数は、HTML ファイルを PDF 形式に変換するために使用されます。 HTML、オプション、コールバックの 3 つのパラメータを渡す必要があります。

writePDF 関数は、PDF ドキュメントをファイル システムに書き込むために使用されます。 doc、path、callback という 3 つのパラメータを渡す必要があります。

createPDF 関数はプロセス全体のコントロール センターであり、generatePDF 関数と writePDF 関数を呼び出して、HTML から PDF への変換プロセスを完了できます。

  1. Node.js を使用して HTML を PDF に変換する

コードの作成が完了したので、Node.js を使用して HTML から PDF への変換を開始できます。コマンド ラインに次のコマンドを入力できます:

node html-to-pdf.js

または、このモジュールを独自のプロジェクトで使用することもできます:

const htmlToPdf = require('./html-to-pdf');

htmlToPdf.createPDF('test.html', 'test.pdf', {
   pageSize: 'letter',
   marginTop: '0mm',
   marginBottom: '0mm',
   marginLeft: '0mm',
   marginRight: '0mm'
}, (err, result) => {
   if (err) {
      console.error(err);
      return;
   }
   console.log('File saved to: ' + result);
});

この例では、createPDF 関数を使用して をテストします。 html は、ページ サイズと余白が設定された test.pdf に変換されます。

  1. 概要

この記事では、Node.js を使用して HTML を PDF に変換する方法を紹介しました。具体的な手順には、依存関係のインストール、コードの作成、Node の使用が含まれます変換などのための .js。広範な HTML 変換タスクを処理する必要がある場合、Node.js を使用すると、効率的で柔軟かつスケーラブルなソリューションが提供されます。

以上がNodejsを使用してHTMLをPDFに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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