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
Libérer: 2023-04-17 16:04:33
original
1645 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

Installer ejs

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

npm install -g ejs
Copier après la connexion

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
Copier après la connexion
  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>
Copier après la connexion
  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!');
});
Copier après la connexion

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>
Copier après la connexion
  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
Copier après la connexion
  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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal