Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menukar Html kepada PDF dengan Node.js (Panduan)

Bagaimana untuk menukar Html kepada PDF dengan Node.js (Panduan)

PHPz
PHPzasal
2023-04-17 15:17:021644semak imbas

Dengan perkembangan Internet, semakin banyak laman web perlu menyediakan muat turun dokumen dalam format PDF untuk memudahkan pengguna membaca atau mencetak di luar talian. Menggunakan Node.js untuk menukar HTML kepada PDF telah menjadi penyelesaian yang popular.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan Node.js untuk menukar HTML kepada PDF, sambil menganalisis teknologi dan langkah berjaga-jaga yang berkaitan.

Persediaan persekitaran:

Sebelum anda mula menukar HTML kepada PDF, anda perlu memastikan bahawa Node.js dan kebergantungan yang berkaitan telah dipasang dalam persekitaran setempat. Ketergantungan yang digunakan dalam artikel ini termasuk: html-pdf, ejs, ekspres, dll.

Pasang html-pdf

html-pdf ialah pakej Node.js sumber terbuka yang boleh dipasang melalui npm:

npm install -g html-pdf

Pasang ekspres

express ialah rangka kerja pembangunan aplikasi web berdasarkan Node.js, yang boleh dipasang melalui npm:

npm install -g express

Pasang ejs

ejs ialah enjin templat JavaScript yang cekap, yang boleh dipasang melalui npm :

npm install -g ejs

Buat aplikasi Web ringkas:

Seterusnya, kami mencipta aplikasi Web ringkas untuk menguji kesan penukaran HTML kami kepada PDF.

  1. Buat projek bernama node-pdf dan laksanakannya dalam direktori ini:
npm init
  1. Buat projek bernama node-pdf dalam direktori Ia adalah folder awam yang digunakan untuk menyimpan fail statik.
  2. Dalam folder awam, cipta fail bernama index.html untuk memaparkan kandungan HTML yang perlu ditukar kepada PDF. Kandungannya adalah seperti berikut:
<!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. Dalam direktori nod-pdf, cipta fail bernama app.js untuk mencipta aplikasi web. Kandungannya adalah seperti berikut:
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!');
});

Dalam kod di atas, kami mentakrifkan dua laluan: satu untuk mengakses halaman utama pelayan (/), dan satu lagi untuk menukar HTML kepada PDF dan memuat turun ( / muat turun).

Antaranya, enjin templat ejs digunakan untuk memaparkan fail index.html dalam folder awam, html-pdf digunakan untuk menukar fail HTML yang diberikan, dan akhirnya pelayar digunakan untuk menyimpan fail PDF sebagai muat turun.

  1. Dalam direktori nod-pdf, cipta folder bernama view dan buat fail bernama index.ejs di bawah folder untuk menetapkan fail templat aplikasi web . Kandungannya adalah seperti berikut:
<!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. Buka baris arahan dalam direktori nod-pdf dan laksanakan arahan berikut untuk memulakan aplikasi:
node app.js
  1. Lawati http://localhost:3000/ dalam penyemak imbas untuk mengakses halaman utama pelayan Klik "Muat turun PDF" untuk menukar fail HTML kepada PDF dan memuat turunnya.

Artikel ini hanyalah panduan ringkas untuk menukar HTML kepada PDF berdasarkan Node.js Untuk butiran dan fungsi lanjut, sila rujuk html-pdf, ejs, ekspres dan dokumen lain yang berkaitan. Pada masa yang sama, dalam proses permohonan sebenar, anda juga perlu memberi perhatian kepada faktor seperti caching dan kerumitan struktur HTML untuk meningkatkan kecekapan dan kualiti menukar HTML kepada PDF.

Atas ialah kandungan terperinci Bagaimana untuk menukar Html kepada PDF dengan Node.js (Panduan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn