ホームページ >ウェブフロントエンド >フロントエンドQ&A >Node.js を使用して HTML を PDF に変換する方法 (ガイド)

Node.js を使用して HTML を PDF に変換する方法 (ガイド)

PHPz
PHPzオリジナル
2023-04-17 15:17:021639ブラウズ

インターネットの発展に伴い、ユーザーがオフラインで読んだり印刷したりできるように、ドキュメントを PDF 形式でダウンロードできるようにする Web サイトがますます増えています。 Node.js を使用して HTML を PDF に変換することは、一般的なソリューションになっています。

この記事では、Node.jsを使ってHTMLをPDFに変換する方法を、関連技術や注意点を分析しながら紹介します。

環境の準備:

HTML から PDF への変換を開始する前に、Node.js と関連する依存関係がローカル環境にインストールされていることを確認する必要があります。この記事で使用される依存関係には、html-pdf、ejs、express などが含まれます。

Install html-pdf

html-pdf は、npm 経由でインストールできるオープン ソースの Node.js パッケージです。

npm install -g html-pdf

Install Express

expressこれは、Node.js に基づく Web アプリケーション開発フレームワークであり、npm を通じてインストールできます。

npm install -g express

ejs のインストール

ejs は、npm を通じてインストールできる効率的な JavaScript テンプレート エンジンです。

npm install -g ejs

単純な Web アプリケーションの作成:

次に、HTML を PDF に変換した場合の効果をテストするための単純な Web アプリケーションを作成します。

  1. node-pdf という名前のプロジェクトを作成し、このディレクトリで実行します。
npm init
  1. node-pdf ディレクトリに public という名前のプロジェクトを作成します。静的ファイル。
  2. パブリック フォルダーに、PDF に変換する必要がある HTML コンテンツを表示するための、index.html という名前のファイルを作成します。内容は次のとおりです。
<!doctype html>
<html>

<head>
  <title>HTML转PDF</title>
  <meta charset="utf-8">
</head>

<body>
  <h1>HTML转PDF</h1>
  <p>这是一段需要转换为PDF的HTML内容。</p>
</body>

</html>
  1. node-pdf ディレクトリに、Web アプリケーション作成用の app.js という名前のファイルを作成します。内容は次のとおりです。
const express = require('express');
const app = express();
const ejs = require('ejs');
const path = require('path');

// 设置模板引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// 服务器首页
app.get('/', function(req, res) {
  res.render('index');
});

// 转换HTML为PDF并进行下载
app.get('/download', function(req, res) {
  const pdf = require('html-pdf');
  const html = ejs.render('<%- include(\&#39;../public/index.html\&#39;) %>', {});
  const options = { format: 'A4' };
  pdf.create(html, options).toStream(function(err, stream) {
    if (err) return res.send(err.message);
    res.setHeader('Content-disposition', 'attachment; filename=sample.pdf');
    res.setHeader('Content-type', 'application/pdf');
    stream.pipe(res);
  });
});

// 启动服务器
app.listen(3000, function() {
  console.log('App listening on port 3000!');
});

上記のコードでは、サーバーのホームページにアクセスするルート (/) と、HTML を PDF に変換してダウンロードするルート (/download ) の 2 つのルートを定義しています。 。

その中で、ejs テンプレート エンジンはパブリック フォルダー内のindex.html ファイルをレンダリングするために使用され、html-pdf はレンダリングされた HTML ファイルを変換するために使用され、最後にブラウザーは PDF ファイルを保存するために使用されます。ダウンロードとして。

  1. node-pdf ディレクトリに、views という名前のフォルダーを作成し、そのフォルダーの下にindex.ejs という名前のファイルを作成して、Web アプリケーションのテンプレート ファイルを設定します。内容は次のとおりです。
<!doctype html>
<html>

<head>
  <title>HTML转PDF</title>
  <meta charset="utf-8">
</head>

<body>
  <h1>HTML转PDF</h1>
  <p>这是一段需要转换为PDF的HTML内容。</p>
  <a href="/download">下载PDF</a>
</body>

</html>
    #node-pdf ディレクトリでコマンド ラインを開き、次のコマンドを実行してアプリケーションを起動します。
  1. node app.js
    ブラウザの場合 http://localhost:3000/ にアクセスしてサーバーのホームページにアクセスし、「PDF をダウンロード」をクリックして HTML ファイルを PDF に変換してダウンロードします。
この記事は、Node.js に基づいて HTML を PDF に変換するための簡単なガイドです。詳細と機能については、html-pdf、ejs、express、およびその他の関連ドキュメントを参照してください。同時に、実際のアプリケーションプロセスでは、HTML から PDF への変換の効率と品質を向上させるために、キャッシュや HTML 構造の複雑さなどの要素にも注意を払う必要があります。

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

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