خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

نحوه ایجاد PDF در Node.js با استفاده از PDFKit

تنها با استفاده از چند دستور ساده با قدرت PDFKit، اسناد PDF جذاب بسازید.

PDFKit یک کتابخانه Node.js است که ساخت و کار با فایل های PDF را برای توسعه دهندگان آسان می کند. این یک API ساده و در عین حال موثر برای تولید PDF و افزودن انواع مختلف محتوا مانند متن، تصاویر و اشکال به آنها ارائه می دهد.

نحوه استفاده از PDF Kit برای ایجاد PDF در Node.js را بیاموزید.

راه اندازی PDFkit

شما باید Node.js و npm (مدیر بسته Node.js) را بر روی دستگاه خود نصب کرده باشید تا ادامه دهید.

با اجرای دستورات ترمینال زیر مطمئن شوید که این ابزارها را نصب کرده اید:

node -v
npm -v

برای شروع استفاده از PDFKit در پروژه Node.js، آن را با اجرای دستور npm زیر نصب کنید:

npm install pdfkit

این دستور PDFKit را نصب می کند و آن را به وابستگی های پروژه شما اضافه می کند.

ایجاد یک سند PDF با PDFKit

برای ایجاد یک سند PDF با استفاده از PDFKit، به بسته pdfkit و ماژول fs (فایل سیستم) در فایل اسکریپت خود نیاز دارید:

const PDFDocument = require('pdfkit');
const fs = require('fs');

سپس یک نمونه جدید از کلاس PDFDocument ایجاد کنید. این کلاس یک فایل PDF را نشان می دهد:

const doc = new PDFDocument();

نمونه ایجاد شده یک جریان قابل خواندن است، به این معنی که می توانید از متد pipe() برای ذخیره محتویات آن در یک فایل استفاده کنید.

برای انجام این کار، نمونه doc را به یک جریان قابل نوشتن که توسط fs.createWriteStream ایجاد شده است وارد کنید:

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

روش createWriteStream محتویات یک فایل PDF را در یک مکان مشخص در سیستم فایل محلی ذخیره می کند.

بلوک کد بالا فایل PDF حاصل را در فهرست کاری فعلی شما با نام MyPDFDoc.pdf ذخیره می کند.

مطلب مرتبط:   نحوه کار با فایل های YAML در Go

مهم است که همیشه پس از افزودن محتوا به PDF، جریان را پایان دهید. با استفاده از این دستور می توانید این کار را انجام دهید:

doc.end();

اکنون گره فرمان گره [نام اسکریپت] را اجرا کنید تا فایل PDF MyPDFDoc.pdf در فهرست کاری فعلی شما ایجاد شود.

اضافه کردن متن با PDFKit

قبل از اینکه سند خود را برای ذخیره آن لوله کنید، می توانید تغییرات مختلفی ایجاد کنید. PDFKit افزودن متن به اسناد را ساده می کند و شامل گزینه های زیادی برای سفارشی کردن نمایش خروجی است.

برای افزودن متن به سند، به سادگی متد text() را فراخوانی کنید و متنی را که می خواهید اضافه کنید به عنوان آرگومان ارسال کنید:

doc.text("Coding is Easy!")

همانطور که PDFKIT متن را به سند اضافه می کند، موقعیت های X و Y فعلی آن متن را پیگیری می کند. بنابراین، هر زمان که روش متن را فراخوانی کنید، PDFKit یک خط جدید زیر خط قبلی اضافه می کند.

با این حال، با ارائه مختصات X و Y به متد متن بعد از خود متن، می توانید موقعیت آن را تغییر دهید:

doc.text('Coding is Easy!', 100, 100)

برای بالا یا پایین رفتن یک خط، متد moveDown یا moveUp را با تعداد خطوطی که متن باید حرکت کند فراخوانی کنید:

doc.moveDown(3);

doc.moveUp();

به‌طور پیش‌فرض، فراخوانی هر یک از متدها بدون ارسال آرگومان باعث می‌شود که تنها یک خط حرکت کند.

PDFKit از هر یک از 14 فونت استاندارد تعریف شده با فرمت PDF پشتیبانی می کند. اسناد متنی PDFKit دارای فهرست کاملی از این فونت های استاندارد است.

از متد font() برای تعیین فونت مورد نیاز خود استفاده کنید. فقط کافی است نام فونت مربوطه را به عنوان یک رشته وارد کنید:

doc.font('Times-Roman')
   .text('Coding is Easy!');

همچنین می توانید اندازه فونت و رنگ متن را با استفاده از متدهای fontSize() و fillColor() تغییر دهید.

مطلب مرتبط:   نحوه استفاده از عبارات منظم در جاوا اسکریپت

مثلا:

// This changes the text color to red and gives it a font size of 8
doc.fillColor('red')
   .fontSize(8)
   .text('Coding is Easy!');

افزودن تصاویر با PDFKit

به یک تصویر در سند PDF خود، به سادگی مسیر آن را به روش تصویر در نمونه سند منتقل کنید:

doc.image('path/to/image.jpeg')

PDFKit به شما امکان می دهد تصاویر را با فرمت JPEG یا PNG اضافه کنید.

به طور پیش فرض، PDFKit تصویر را در اندازه اصلی خود درج می کند. شما می توانید ابعاد یک تصویر را با ارائه یک شی حاوی جفت های کلید-مقدار به عنوان آرگومان برای متد image() تغییر دهید. می توانید عرض، ارتفاع و تراز افقی و عمودی را مشخص کنید.

مثلا:

// Specifying the width alone
doc.image('path/to/image.jpg', { width: 300 });

// Specifying both the width and height
doc.image('path/to/image.jpg', { width: 300, height:200 })

افزودن صفحات با PDFKit

برای افزودن صفحات جدید به سند PDF، به سادگی متد addPage را در نمونه سند فراخوانی کنید:

doc.addPage()

برای افزودن خودکار محتوا هر بار که صفحه جدیدی را اضافه می کنید، از رویداد pageAdded در نمونه سند استفاده کنید.

مثلا:

doc.on('pageAdded', () => doc.text("Coding is Easy!"));

PDFKit به شما امکان می دهد ابعاد صفحه را هنگام ایجاد یک سند جدید یا اضافه کردن یک صفحه جدید به یک سند موجود مشخص کنید. چندین اندازه صفحه از پیش تعریف شده وجود دارد که مستندات کاغذ PDFKit توضیح می دهد.

برای استفاده از هر یک از این اندازه های از پیش تعریف شده صفحه، یک شی را به سازنده PDFDocument یا متد addPage() ارسال کنید. از ویژگی size برای تعیین رشته ای که نام اندازه کاغذ است استفاده کنید.

مطلب مرتبط:   نحوه پخش ویدیو با استفاده از اسکریپت پایتون

مثلا:

// constructor
const doc = new PDFDocument({ size: 'A5' });

// addPage function
doc.addPage({ size: 'A7' });

ارسال این شی گزینه به سازنده PDFDocument، اندازه صفحه پیش فرض را برای کل سند تنظیم می کند. سپس می توانید با ارسال مقدار دیگری به متد addPage، این پیش فرض را بازنویسی کنید.

هنگام اضافه کردن صفحات می توانید حاشیه صفحه را با ارسال یک شی به ویژگی margins تنظیم کنید.

ویژگی margins یک شی با ویژگی های بالا، پایین، چپ و راست می گیرد که هر حاشیه را نشان می دهد.

مثلا:

// Add different margins on each side
doc.addPage({
  margins: {
    top: 72,
    bottom: 72,
    left: 50,
    right: 50
  }
});

این کد حاشیه های بالا و پایین را روی 72 نقطه و حاشیه های چپ و راست را 50 نقطه قرار می دهد. توجه داشته باشید که حاشیه پیش‌فرض برای اسناد ایجاد شده توسط PDFKit یک حاشیه 1 اینچی (72 نقطه) از همه طرف است.

برای تنظیم تمام حاشیه های بالا، پایین، چپ و راست روی یک مقدار، به سادگی یک شی با ویژگی margin را به متد addPage ارسال کنید:

doc.addPage({ margin: 60 }) // add a 60 point margin to each side

مزایای ایجاد PDF با PDFKit در Node.js

PDFKit شما را قادر می سازد اسناد استاندارد و پشتیبانی شده را از برنامه های Node.js خود تولید کنید. با PDFKit می توانید اسناد پیچیده را به راحتی مدیریت کنید. علاوه بر این، می‌تواند تحویل اسناد به کاربران را تسهیل کند و اشتراک‌گذاری و چاپ آن‌ها را ساده‌تر کند.