Maison >interface Web >Questions et réponses frontales >Comment convertir du HTML en PDF avec Node.js (Guide)

Comment convertir du HTML en PDF avec Node.js (Guide)

PHPz
PHPzoriginal
2023-04-17 15:17:021616parcourir

Avec le développement d'Internet, de plus en plus de sites Web doivent proposer le téléchargement de documents au format PDF pour faciliter la lecture ou l'impression hors ligne des utilisateurs. Utiliser Node.js pour convertir du HTML en PDF est devenu une solution populaire.

Dans cet article, nous présenterons comment utiliser Node.js pour convertir du HTML en PDF, tout en analysant les technologies et les précautions associées.

Préparation de l'environnement :

Avant de commencer à convertir du HTML en PDF, vous devez vous assurer que Node.js et les dépendances associées ont été installés dans l'environnement local. Les dépendances utilisées dans cet article incluent : html-pdf, ejs, express, etc.

Install html-pdf

html-pdf est un package Node.js open source qui peut être installé via npm :

npm install -g html-pdf

Install express

express est un framework de développement d'applications Web basé sur Node.js qui peut être installé via Installation de npm :

npm install -g express

Installer ejs

ejs est un moteur de modèle JavaScript efficace qui peut être installé via npm :

npm install -g ejs

Créer une application Web simple :

Ensuite, nous créons une application Web simple pour tester notre conversion HTML en PDF effet.

  1. Créez un projet nommé node-pdf et exécutez-le dans ce répertoire :
npm init
  1. Créez un dossier nommé public dans le répertoire node-pdf pour stocker les fichiers statiques.
  2. Dans le dossier public, créez un fichier nommé index.html pour afficher le contenu HTML qui doit être converti en PDF. Le contenu est le suivant :
<!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. Dans le répertoire node-pdf, créez un fichier nommé app.js pour créer des applications web. Le contenu est le suivant :
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!');
});

Dans le code ci-dessus, nous définissons deux routes : une pour accéder à la page d'accueil du serveur (/), et l'autre pour convertir le HTML en PDF et le télécharger (/download).

Parmi eux, le moteur de modèles ejs est utilisé pour restituer le fichier index.html dans le dossier public, html-pdf est utilisé pour convertir le fichier HTML rendu, et enfin le navigateur est utilisé pour enregistrer le fichier PDF en téléchargement.

  1. Dans le répertoire node-pdf, créez un dossier nommé vues et créez un fichier nommé index.ejs sous le dossier pour définir le fichier modèle de l'application Web. Le contenu est le suivant :
<!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>
  1. Ouvrez la ligne de commande dans le répertoire node-pdf et exécutez la commande suivante pour démarrer l'application :
node app.js
  1. Visitez http://localhost:3000/ dans le navigateur pour accéder sur la page d'accueil du serveur, cliquez sur "Télécharger le PDF" pour convertir le fichier HTML en PDF et le télécharger.

Cet article n'est qu'un simple guide pour convertir du HTML en PDF basé sur Node.js. Pour plus de détails et de fonctions, veuillez vous référer à html-pdf, ejs, express et autres documents connexes. Dans le même temps, dans le processus de candidature proprement dit, vous devez également prêter attention à des facteurs tels que la mise en cache et la complexité de la structure HTML pour améliorer l'efficacité et la qualité de la conversion HTML en PDF.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn