تبدیل صفحات وب HTML به PDF

در این مقاله، من شما را از طریق فرآیند ساده تبدیل صفحات وب HTML به اسناد PDF با استفاده از Puppeteer راهنمایی می کنم. این کتابخانه Node.js یک API کاربرپسند برای کنترل Chrome یا Chromium از طریق پروتکل DevTools ارائه میکند.
پیش نیازها
قبل از شروع، مطمئن شوید که Node.js و npm را روی دستگاه خود نصب کرده اید. Node.js یک زمان اجرا جاوا اسکریپت است که بر روی موتور جاوا اسکریپت V8 کروم ساخته شده است و npm مدیر بسته برای پلتفرم Node.js است. اگر نه، می توانید Node.js را از وب سایت رسمی (https://nodejs.org/en/download) دانلود و نصب کنید، جایی که مدیر بسته Node.js در توزیع Node.js گنجانده شده است.
با اجرای دستورات زیر در ترمینال خود می توانید نصب را تأیید کنید:
node --version
npm --version
مرحله 1: یک پروژه Node.js جدید را راه اندازی کنید
ابتدا یک دایرکتوری جدید برای پروژه خود ایجاد کنید و به آن بروید:
mkdir html-to-pdf-demo
cd html-to-pdf-demo
سپس، یک پروژه Node.js جدید را با اجرای:
npm init -y
این یک فایل ‘package.json* جدید در فهرست پروژه شما ایجاد می کند.
مرحله 2: Puppeteer را نصب کنید
سپس Puppeteer را با اجرای زیر نصب کنید:
npm install puppeteer
با این کار نسخه اخیر Chromium، مرورگری بدون سر که Puppeteer کنترل میکند، دانلود میشود.
مرحله 3: اسکریپت را بنویسید
یک فایل index.js جدید در فهرست پروژه خود ایجاد کنید و آن را در متن خود باز کنید
ویرایشگر سپس کد زیر را قرار دهید:
const puppeteer =
require('puppeteer');
async function printPDF() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto (http://
marvel2950.github.io, {waitUntil:
'networkidle0'});
const pdf = await
page.pdf ({ format: 'A4' });
await browser.close();
return pdf;
}
printPDF().then (pdf => {
require('fs') .writeFileSync('output.pdf', pdf);
});
این اسکریپت یک نمونه مرورگر جدید راه اندازی می کند، یک صفحه جدید باز می کند، به http://marvel2950.github.io می رود و یک PDF تولید می کند. گزینه «{waitUntil: «networkidle0»} تضمین میکند که تابع «page.goto» تا زمانی که حداقل 500 میلیثانیه بیش از 0 اتصال شبکه وجود نداشته باشد، منتظر میماند.
مرحله 4: اسکریپت را اجرا کنید
node index.js
و بس! این یک سند PDF جدید به نام “output.pdf” در فهرست پروژه شما ایجاد می کند. این فایل حاصل فرآیند تولید PDF است و حاوی محتوای صفحه وب HTML در قالب PDF است.