ایجاد و ویرایش PDF از طریق JavaScript API منبع باز

کتابخانه جاوا اسکریپت منبع باز برای ایجاد و اصلاح فایل های PDF، افزودن و کپی صفحات و درج تصاویر به PDF از طریق جاوا اسکریپت.

PDF-Lib یک کتابخانه جاوا اسکریپت منبع باز است که متخصصان نرم افزار را قادر می سازد تا برنامه های قدرتمندی را برای کار با فایل های PDF توسعه دهند. این کتابخانه دارای ویژگی های بسیار غنی است و برای کار در هر زمان اجرای جاوا اسکریپت مدرن طراحی شده است. این شامل پشتیبانی از ایجاد فایل‌های PDF جدید، ویرایش اسناد PDF موجود، ایجاد فرم‌ها، افزودن یا حذف صفحات PDF، کپی صفحات بین PDF، کشیدن متن و تصاویر، اندازه‌گیری عرض و ارتفاع متن، تقسیم و ادغام اسناد، خواندن و متادیتای پی دی اف، ترسیم گرافیک برداری و بسیاری موارد دیگر را تنظیم کنید.

این کتابخانه با تایپ اسکریپت نوشته شده و به جاوا اسکریپت خالص و بدون وابستگی دیگر کامپایل شده است. یکی از اهداف بزرگ ایجاد کتابخانه PDF-Lib رسیدگی به عدم پشتیبانی قوی اکوسیستم جاوا اسکریپت برای ویرایش یا اصلاح PDF بود. کتابخانه‌های جاوا اسکریپت خوبی وجود دارد که از ایجاد فایل‌های PDF پشتیبانی می‌کنند، اما تعداد بسیار کمی از آنها پشتیبانی قوی برای اصلاح PDF دارند. PDF-Lib شامل پشتیبانی کامل از اصلاح PDF و همچنین کار در تمام محیط های جاوا اسکریپت (نه فقط Node یا مرورگر) است.

Previous Next

شروع کار با PDF-Lib

توصیه شده و ساده ترین راه برای شروع و نصب PDF-Lib از طریق npm و همچنین در yarn است، در زیر این دستور آمده است.

PDF-Lib را از طریق npm نصب کنید

 npm install --save pdf-lib 

PDF-Lib را از طریق نخ نصب کنید

 yarn add pdf-lib 

ایجاد و اصلاح اسناد PDF از طریق جاوا اسکریپت

کتابخانه PDF-Lib منبع باز دارای عملکرد کامل برای ایجاد سند PDF و همچنین اصلاح است. توسعه دهندگان نرم افزار می توانند یک سند PDF جدید را از ابتدا تنها با چند خط کد جاوا اسکریپت در داخل برنامه های خود ایجاد کنند. پس از ایجاد، توسعه دهندگان می توانند متن را وارد کنند، تصاویر یا گرافیک های برداری را ترسیم کنند، فونت های خود را جاسازی کنند، صفحات را از PDF های دیگر کپی کرده و جاسازی کنند، قالب بندی و سبک های دلخواه خود را اعمال کنند و موارد دیگر.

نحوه ایجاد اسناد PDF از طریق جاوا اسکریپت

import { PDFDocument, StandardFonts, rgb } from 'pdf-lib'
// Create a new PDFDocument
const pdfDoc = await PDFDocument.create()
// Embed the Times Roman font
const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)
// Add a blank page to the document
const page = pdfDoc.addPage()
// Get the width and height of the page
const { width, height } = page.getSize()
// Draw a string of text toward the top of the page
const fontSize = 30
page.drawText('Creating PDFs in JavaScript is awesome!', {
  x: 50,
  y: height - 4 * fontSize,
  size: fontSize,
  font: timesRomanFont,
  color: rgb(0, 0.53, 0.71),
})
// Serialize the PDFDocument to bytes (a Uint8Array)
const pdfBytes = await pdfDoc.save()

صفحات را بین اسناد PDF از طریق JS Library کپی کنید

اغلب استفاده از یک صفحه موجود به جای ایجاد یک صفحه جدید در یک سند PDF بسیار سودمند است. کتابخانه PDF-Lib منبع باز به برنامه نویسان کامپیوتر این امکان را می دهد که صفحات را از اسناد PDF مختلف کپی کرده و آنها را بدون هیچ گونه وابستگی خارجی به اسناد PDF مورد نظر خود اضافه کنند. ابتدا باید هر دو فایل PDF را بارگذاری کنید، پس از آن می توانید از دستور copyPages() برای کپی کردن صفحات مورد نظر استفاده کنید و سپس با استفاده از دستور addPage() صفحه را در محل مورد نظر داخل اسناد PDF اضافه کنید.

اضافه کردن متن به PDF موجود با استفاده از جاوا اسکریپت

import { PDFDocument } from 'pdf-lib'
// Create a new PDFDocument
const pdfDoc = await PDFDocument.create()
const firstDonorPdfBytes = ...
const secondDonorPdfBytes = ...
// Load a PDFDocument from each of the existing PDFs
const firstDonorPdfDoc = await PDFDocument.load(firstDonorPdfBytes)
const secondDonorPdfDoc = await PDFDocument.load(secondDonorPdfBytes)
// Copy the 1st page from the first donor document, and
// the 743rd page from the second donor document
const [firstDonorPage] = await pdfDoc.copyPages(firstDonorPdfDoc, [0])
const [secondDonorPage] = await pdfDoc.copyPages(secondDonorPdfDoc, [742])
// Add the first copied page
pdfDoc.addPage(firstDonorPage)
// Insert the second copied page to index 0, so it will be the
// first page in `pdfDoc`
pdfDoc.insertPage(0, secondDonorPage)
// Serialize the PDFDocument to bytes (a Uint8Array)
const pdfBytes = await pdfDoc.save()

تجزیه و خواندن فراداده از فایل های PDF

کتابخانه PDF-Lib به طور کامل از دسترسی و خواندن فراداده اسناد PDF پشتیبانی می کند. فراداده بخش بسیار مهمی از اسناد PDF است و شامل اطلاعات بسیار مهمی در مورد PDF و محتویات آن مانند عنوان، موضوع، نویسنده، اطلاعات کپی رایت، سازنده، تاریخ ایجاد یا اصلاح و غیره است. توسعه دهندگان نرم افزار کتابخانه PDF-Lib با استفاده از PDF-Lib می توانند به راحتی متادیتا را از یک سند PDF تنها با چند خط کد جاوا اسکریپت تجزیه و استخراج کنند.

اضافه کردن تصویر به PDF با استفاده از جاوا اسکریپت


import { PDFDocument, StandardFonts } from 'pdf-lib'
// Create a new PDFDocument
const pdfDoc = await PDFDocument.create()
// Embed the Times Roman font
const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)
// Add a page and draw some text on it
const page = pdfDoc.addPage([500, 600])
page.setFont(timesRomanFont)
page.drawText('The Life of an Egg', { x: 60, y: 500, size: 50 })
page.drawText('An Epic Tale of Woe', { x: 125, y: 460, size: 25 })
// Set all available metadata fields on the PDFDocument. Note that these fields
// are visible in the "Document Properties" section of most PDF readers.
pdfDoc.setTitle('🥚 The Life of an Egg 🍳')
pdfDoc.setAuthor('Humpty Dumpty')
pdfDoc.setSubject('📘 An Epic Tale of Woe 📖')
pdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])
pdfDoc.setProducer('PDF App 9000 🤖')
pdfDoc.setCreator('pdf-lib (https://github.com/Hopding/pdf-lib)')
pdfDoc.setCreationDate(new Date('2018-06-24T01:58:37.228Z'))
pdfDoc.setModificationDate(new Date('2019-12-21T07:00:11.000Z'))
// Serialize the PDFDocument to bytes (a Uint8Array)
const pdfBytes = await pdfDoc.save()

افزودن پیوست ها به PDF از طریق JavaScript API

گاهی اوقات لازم است اطلاعات دقیق تری در مورد یک فایل PDF ارائه کنیم تا بتوانیم فایل دیگری را به آن فایل پیوست کنیم. اکنون مزیت آن فایل این خواهد بود که اگر پیوست را به مکان دیگری منتقل کنید، با PDF همراه خواهد شد. کتابخانه متن باز PDF-Lib به توسعه دهندگان نرم افزار این قابلیت را می دهد که فایل های دیگر را به اسناد PDF خود در داخل برنامه های جاوا اسکریپت خود پیوست کنند. این امکان وجود دارد که انواع مختلفی از فایل ها مانند مایکروسافت ورد، اکسل، تصاویر، ویدئو و یا حتی PDF های دیگر را به یک PDF پیوست کنید.

ضمیمه ها را با استفاده از جاوا اسکریپت به PDF اضافه کنید

const jpgAttachmentBytes = ...
const pdfAttachmentBytes = ...
// Create a new PDFDocument
const pdfDoc = await PDFDocument.create()
// Add the JPG attachment
await pdfDoc.attach(jpgAttachmentBytes, 'cat_riding_unicorn.jpg', {
  mimeType: 'image/jpeg',
  creationDate: new Date('2019/12/01'),
  modificationDate: new Date('2020/04/19'),
})
// Add the PDF attachment
await pdfDoc.attach(pdfAttachmentBytes, 'us_constitution.pdf', {
  mimeType: 'application/pdf',
  creationDate: new Date('1787/09/17'),
  modificationDate: new Date('1992/05/07'),
})
// Add a page with some text
const page = pdfDoc.addPage();
page.drawText('This PDF has two attachments', { x: 135, y: 415 })
// Serialize the PDFDocument to bytes (a Uint8Array)
const pdfBytes = await pdfDoc.save()
 فارسی