توليد PDF في TypeScript: المكتبات والأدوات لـ Node.js

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

توليد PDF في TypeScript: نظرة عامة على المكتبات والأدوات



إنشاء مستندات PDF هو أحد المهام الشائعة في تطوير الويب. TypeScript، بفضل الكتابة الصارمة والإمكانيات الحديثة، يسمح بكتابة كود موثوق لتوليد PDF سواء على العميل أو الخادم. في هذه المقالة، سنستعرض المكتبات والأدوات الشائعة لتوليد PDF باستخدام TypeScript، وميزاتها وأمثلة على استخدامها.



1. PDFKit — مكتبة خادم قوية



PDFKit هي واحدة من أشهر المكتبات لإنشاء PDF على Node.js. توفر تحكمًا كاملاً في بنية المستند، وتدعم الخطوط والصور والتعليقات التوضيحية والرسومات المتجهة. تعمل PDFKit على الخادم وهي مثالية لتوليد التقارير المعقدة والفواتير أو الشهادات.



التثبيت والمثال:



npm install pdfkit @types/pdfkit


import PDFDocument from 'pdfkit';import * as fs from 'fs';

const doc = new PDFDocument();

doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(25).text('مرحبًا بالعالم!', 100, 100);doc.fontSize(12).text('هذا PDF تم إنشاؤه باستخدام PDFKit و TypeScript.', 100, 150);

doc.end();


PDFKit مناسبة لـ:



  • إنشاء PDF على الخادم (Express، NestJS)
  • العمل مع الخطوط المخصصة وترميزات الأحرف (بما في ذلك السيريلية)
  • إضافة الصور والجداول والعناصر الرسومية الأساسية


2. jsPDF — توليد PDF على العميل



jsPDF هي مكتبة عميلية لإنشاء PDF مباشرة في المتصفح. سهلة الاستخدام، وتدعم النصوص والصور والتعليقات التوضيحية والأشكال الأساسية. تتوفر أنواع TypeScript عبر DefinitelyTyped.



التثبيت:



npm install jspdf @types/jspdf


مثال على توليد PDF في المتصفح:



import { jsPDF } from 'jspdf';

const doc = new jsPDF();

doc.text('مرحبًا TypeScript!', 10, 10);doc.text('هذا PDF تم إنشاؤه في المتصفح.', 10, 20);

doc.save('document.pdf');


jsPDF مناسبة لـ:



  • تنزيل PDF من جانب العميل (تقارير، إيصالات)
  • المستندات البسيطة بدون تنسيق معقد
  • النمذجة السريعة


3. Puppeteer — التوليد من HTML



Puppeteer هي مكتبة للتحكم في متصفح Chrome/Chromium. تتيح تحويل صفحات HTML إلى PDF مع الحفاظ الكامل على الأنماط والخطوط والتنسيق. مثالية لإنشاء المستندات المعقدة والتقارير وبطاقات العمل.



التثبيت:



npm install puppeteer


مثال على تحويل HTML إلى PDF:



import puppeteer from 'puppeteer';

async function generatePDF(html: string, outputPath: string): Promise<void> { const browser = await puppeteer.launch(); const page = await browser.newPage();

await page.setContent(html, { waitUntil: 'networkidle0' }); await page.pdf({ path: outputPath, format: 'A4' });

await browser.close();}

// الاستخدامconst htmlContent = `<h1 style="color: blue;">عنوان</h1><p>نص مع أنماط HTML</p>`;generatePDF(htmlContent, 'output.pdf');


Puppeteer مثالية لـ:



  • تحويل قوالب HTML المعقدة إلى PDF
  • إنشاء PDF مع أنماط CSS، Flexbox، Grid
  • توليد PDF على الخادم مع تحكم كامل في المظهر


4. pdf-lib — مكتبة خفيفة وسريعة



pdf-lib هي مكتبة حديثة لإنشاء وتعديل مستندات PDF بدون تبعيات خارجية. تعمل في كل من Node.js والمتصفح. تدعم الخطوط والصور والنماذج والتعليقات التوضيحية.



التثبيت:



npm install pdf-lib
\

توصيات