dompdf.js: ساخت PDF از DOM کاملاً داخل مرورگر
خلاصهٔ کاملتر
dompdf.js یه موتور تبدیل DOM به PDF هست که کاملاً سمت فرانتاند کار میکنه و با TypeScript، Web Worker، Rust و WebAssembly ساخته شده. طبق README پروژه، هم استخراج هندسهٔ المنتهای صفحه و هم کامپایل PDF داخل مرورگر انجام میشه. یعنی نه سندی آپلود میشه و نه سرور بکاندی لازمه، که هم برای حریم خصوصی خوبه و هم زیرساخت اضافه نمیخواد.
فرق اصلیش با روشهای رایج اینه که خروجی برداری میده. خیلی از ابزارهای سمت کلاینت از کل صفحه عکس میگیرن و همون عکس رو تو PDF میذارن، که متنش قابل انتخاب نیست و کیفیتش پایینه. اینجا متن و pathها برداریان، پس متن قابل جستجو و کپی هست. کامپایل هم روی Web Worker (یعنی یه thread پسزمینه که UI رو قفل نمیکنه) و با WebAssembly انجام میشه. سازندهها میگن یه سند ۵۰۰ صفحهای حدود ۲ ثانیه طول میکشه.
امکاناتش گستردهست: صفحهبندی هوشمند چندصفحهای، فونت چینی و فونتهای TTF دلخواه با subset کردن خودکار (یعنی فقط حروف استفادهشده تو فایل میره تا حجم کم بشه)، واترمارک متنی و تصویری، header و footer پویا با شمارهٔ صفحه، پشتیبانی از SVG و Canvas و CSS، لینک، فرمهای تعاملی AcroForm و رمزگذاری PDF با رمز کاربر و مالک.
استفادهش سادهست: المنت رو میدی، یه Blob از PDF پس میگیری و میتونی نشونش بدی یا دانلودش کنی. این مثال از README پروژهست:
const element = document.querySelector("#content");
const blob = await dompdf(element, {
format: "a4",
pagination: true,
backgroundColor: "#ffffff",
});پکیج از npm نصب میشه و از CDN هم در دسترسه. یه محیط آنلاین به اسم dompdf.js Studio هم هست که HTML و CSS رو ویرایش میکنی و PDF رو همزمان کنارش میبینی، و یه ویرایشگر PDF آنلاین هم روی همین کتابخونه ساخته شده. پروژه با لایسنس MIT منتشر شده.
نکات کلیدی:
- کل فرایند ساخت PDF داخل مرورگره و هیچ سرور یا آپلودی لازم نیست.
- خروجی برداریه و متن PDF قابل جستجو، انتخاب و کپی هست.
- طبق ادعای سازندهها، خروجی یه سند ۵۰۰ صفحهای حدود ۲ ثانیه طول میکشه.
- از فونت TTF دلخواه با subset خودکار، واترمارک، AcroForm و رمزگذاری PDF پشتیبانی میکنه.
- با لایسنس MIT منتشر شده و از npm با اسم dompdf.js نصب میشه.




