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.
npm init
<!doctype html> <html> <head> <title>HTML转PDF</title> <meta charset="utf-8"> </head> <body> <h1>HTML转PDF</h1> <p>这是一段需要转换为PDF的HTML内容。</p> </body> </html>
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(\'../public/index.html\') %>', {}); 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.
<!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 app.js
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!