Açıq Mənbəli JavaScript API vasitəsilə PDF Yaradılması və Redaktə edilməsi
PDF fayllarını yaratmaq və dəyişdirmək, səhifələri əlavə etmək və köçürmək və şəkilləri JavaScript vasitəsilə PDF-ə daxil etmək üçün Açıq Mənbəli JavaScript Kitabxanası.
PDF-Lib proqram mütəxəssislərinə PDF faylları ilə işləmək üçün güclü proqramlar hazırlamağa imkan verən açıq mənbəli JavaScript kitabxanasıdır. Kitabxana çox zəngin xüsusiyyətlərə malikdir və istənilən müasir JavaScript iş vaxtında işləmək üçün nəzərdə tutulmuşdur. Buraya yeni PDF fayllarının yaradılması, mövcud PDF sənədlərinin redaktəsi, formaların yaradılması, PDF səhifələrinin əlavə edilməsi və ya çıxarılması, PDF sənədləri arasında səhifələrin surətinin çıxarılması, mətn və şəkillərin çəkilməsi, mətnin eni və hündürlüyünün ölçülməsi, sənədlərin bölünməsi və birləşdirilməsi, oxunması və dəstəklənməsi daxildir. PDF metadatasını təyin edin, Vektor qrafikasını çəkin və daha çox.
Kitabxana Typescript-də yazılmışdır və başqa heç bir asılılıq olmadan təmiz JavaScript-ə tərtib edilmişdir. PDF-Lib kitabxanasının yaradılmasının böyük məqsədlərindən biri JavaScript ekosisteminin PDF redaktəsi və ya modifikasiyası üçün güclü dəstəyin olmamasını aradan qaldırmaq idi. PDF fayllarının yaradılmasını dəstəkləyən müxtəlif yaxşı JavaScript kitabxanaları var, lakin çox az sayda PDF modifikasiyası üçün güclü dəstək daxildir. PDF-Lib bütün JavaScript mühitlərində (yalnız Node və ya Brauzerdə deyil) işləmək üçün PDF modifikasiyası üçün tam dəstəyi ehtiva edir.
PDF-Lib ilə işə başlamaq
PDF-Lib-i işə salmağın və quraşdırmanın tövsiyə olunan və ən asan yolu npm, eləcə də iplik vasitəsilə, aşağıda əmrdir.
npm vasitəsilə PDF-Lib quraşdırın
npm install --save pdf-lib
iplik vasitəsilə PDF-Lib quraşdırın
yarn add pdf-lib
JavaScript vasitəsilə PDF sənədlərinin yaradılması və dəyişdirilməsi
Açıq mənbəli PDF-Lib kitabxanası PDF sənədinin yaradılması və modifikasiyası üçün tam funksionallığı özündə birləşdirir. Proqram tərtibatçıları öz proqramlarında sadəcə bir neçə sətir JavaScript kodu ilə sıfırdan yeni PDF sənədi yarada bilərlər. Yaradıldıqdan sonra tərtibatçılar mətn daxil edə, şəkillər və ya vektor qrafikasını çəkə, şriftlərini yerləşdirə, digər PDF-lərdən səhifələri kopyalayıb yerləşdirə, seçdikləri format və üslubları tətbiq edə və s. edə bilərlər.
JavaScript vasitəsilə PDF sənədlərini necə yaratmaq olar
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()
JS Library vasitəsilə PDF sənədləri arasında Səhifələri kopyalayın
Çox vaxt PDF sənədində yeni səhifə yaratmaq əvəzinə mövcud səhifədən istifadə etmək çox faydalıdır. Açıq mənbəli PDF-Lib kitabxanası kompüter proqramçılarına müxtəlif PDF sənədlərindən səhifələri köçürməyə və onları heç bir xarici asılılıq olmadan istədikləri PDF sənədlərinə əlavə etməyə imkan verir. Əvvəlcə hər iki PDF faylını yükləməlisiniz, bundan sonra istədiyiniz səhifələri köçürmək üçün copyPages() əmrindən istifadə edə, sonra isə səhifəni PDF sənədlərinin içərisində istədiyiniz yerə əlavə etmək üçün addPage() əmrindən istifadə edə bilərsiniz.
JavaScript istifadə edərək mövcud PDF-ə mətn əlavə edin
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 fayllarından metaməlumatları təhlil edin və oxuyun
PDF-Lib kitabxanası PDF sənədlərinin metadatasına daxil olmağı və oxumağı tam dəstəkləyir. Metadata PDF sənədlərinin çox vacib hissəsidir və PDF və onun məzmunu haqqında çox əhəmiyyətli məlumatları ehtiva edir, məsələn, başlıq, mövzu, müəllif, müəllif hüquqları məlumatı, yaradıcı, yaradılma və ya dəyişdirilmə tarixi və s. PDF-Lib kitabxanasından istifadə edən proqram tərtibatçıları sadəcə bir neçə sətir JavaScript kodu ilə PDF sənədindən metaməlumatları asanlıqla təhlil edə və çıxara bilərlər.
JavaScript istifadə edərək PDF-ə şəkil əlavə edin
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()
JavaScript API vasitəsilə PDF-ə Qoşmalar əlavə edin
Bəzən biz PDF faylı haqqında daha ətraflı məlumat verməliyik ki, həmin fayla başqa fayl əlavə edək. İndi həmin faylın faydası ondan ibarətdir ki, siz onu başqa yerə köçürsəniz, qoşma PDF ilə birlikdə səyahət edəcək. Açıq mənbəli PDF-Lib kitabxanası proqram tərtibatçılarına JavaScript proqramlarında öz PDF sənədlərinə başqa faylları əlavə etmək imkanı verir. Microsoft Word, Excel, şəkillər, video və hətta digər PDF sənədləri kimi müxtəlif növ faylları PDF-ə əlavə etmək mümkündür.
JavaScript istifadə edərək PDF-ə əlavələr əlavə edin
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()