Maison  >  Article  >  interface Web  >  nodejs en pdf

nodejs en pdf

WBOY
WBOYoriginal
2023-05-23 12:27:071748parcourir

Avec le développement d'Internet, de plus en plus de pages Web doivent être converties en fichiers PDF pour être imprimées, partagées et enregistrées. L'émergence de Node.js nous offre un environnement qui peut s'exécuter côté serveur, ce qui rend plus pratique et efficace la conversion de pages Web en fichiers PDF. Cet article explique comment utiliser Node.js pour convertir des pages Web en fichiers PDF.

1. Installez Node.js et les modules associés

Pour utiliser Node.js pour convertir des pages Web en fichiers PDF, vous devez d'abord installer l'environnement Node.js sur votre ordinateur. Node.js peut être téléchargé et installé à partir du site officiel https://nodejs.org/.

Après avoir installé Node.js, vous devez installer certains modules associés :

  1. Express : fournit un cadre de développement d'applications Web.
  2. Puppeteer : Une bibliothèque Node.js développée par Google pour contrôler Chrome sans tête.

Peut être installé dans l'outil de ligne de commande via la commande suivante :

npm install express puppeteer

2. Écrivez le code

Après avoir installé Node.js et les modules associés, commencez à écrire du code. Vous trouverez ci-dessous une application Express simple qui convertit automatiquement les pages Web en fichiers PDF lorsqu'elles sont chargées dans le navigateur :

const express = require('express')
const puppeteer = require('puppeteer')

const app = express()
const port = 3000

app.get('/', async (req, res) => {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('https://www.example.com')
  const pdf = await page.pdf()
  res.contentType("application/pdf")
  res.send(pdf)
  await browser.close()
})

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`)
})

Cette application utilise le framework Express pour créer un serveur Web et utilise la bibliothèque Puppeteer pour convertir les pages Web en fichiers PDF. Ouvrez votre navigateur et entrez http://localhost:3000 pour voir le fichier PDF converti.

3. Paramètres des paramètres

La bibliothèque Puppeteer peut définir de nombreux paramètres à personnaliser pendant le processus de conversion de pages Web en fichiers PDF, tels que la taille de la page, les marges, l'en-tête/pied de page, la mise à l'échelle et la pagination, etc. Certains paramètres couramment utilisés sont répertoriés ci-dessous :

  1. format : le format de la page Web. Il peut être défini sur des formats de page standard tels que A4, Lettre, etc., ou il peut s'agir d'un format de page personnalisé.
  2. margin : La marge de la page Web. Peut être défini sur la marge supérieure, la marge inférieure, la marge gauche, la marge droite, etc.
  3. headerTemplate/footerTemplate : modèle HTML qui peut définir l'en-tête et le pied de page. Vous pouvez ajouter un élément avec un nom de classe de page dans le modèle et y ajouter le numéro de page converti.
  4. displayHeaderFooter : vous pouvez définir s'il faut afficher l'en-tête et le pied de page. Définissez sur true pour afficher, définissez sur false pour ne pas afficher.
  5. échelle : vous pouvez définir le rapport de mise à l'échelle de la page Web pour l'adapter au fichier PDF de sortie.
  6. pageRanges : vous pouvez définir la plage de numéros de pages qui doit être convertie pour s'adapter à la conversion de documents de plusieurs pages. Par exemple, pageRanges : '1-10' signifie que seul le contenu des pages 1 à 10 sera converti.

Voici un exemple de définition de certains paramètres lors de la conversion d'une page Web en fichier PDF :

const express = require('express')
const puppeteer = require('puppeteer')

const app = express()
const port = 3000

app.get('/', async (req, res) => {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('https://www.example.com')

  const pdf = await page.pdf({
    format: 'A4',
    margin: {
      top: '20mm',
      right: '20mm',
      bottom: '20mm',
      left: '20mm'
    },
    displayHeaderFooter: true,
    headerTemplate: '<div class="page-number"></div>',
    footerTemplate:
      '<div class="page-number"></div>',
    scale: 0.8
  })

  res.contentType("application/pdf")
  res.send(pdf)
  await browser.close()
})

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`)
})

Cette application définit le format de page A4, les marges de 20 mm, l'affichage de l'en-tête et du pied de page, le modèle d'en-tête et de pied de page, le rapport de zoom 0,8x. et contrôlez le fichier PDF de sortie pour qu'il n'inclue que les pages 1 à 10.

4. Résumé

Utiliser Node.js pour convertir des pages Web en fichiers PDF est très pratique et efficace. La bibliothèque Puppeteer offre un contrôle complet sur Chrome sans tête, vous permettant de contrôler facilement la taille de la page, les marges, l'en-tête/pied de page, la mise à l'échelle et la pagination, etc. pour répondre à différents besoins. Grâce à l'introduction de cet article, je pense que les lecteurs ont une certaine compréhension du processus de conversion des pages Web en fichiers PDF et peuvent continuellement l'améliorer et l'optimiser dans la pratique.

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
Article précédent:plugin de menu jquery ?Article suivant:plugin de menu jquery ?