برنامه نویسی

تبدیل صفحات وب 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 است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا