Penciptaan & Penyuntingan PDF melalui Open Source JavaScript API
Perpustakaan JavaScript Sumber Terbuka untuk Mencipta & mengubah suai Fail PDF, menambah & menyalin halaman & memasukkan imej ke PDF melalui JavaScript.
PDF-Lib ialah perpustakaan JavaScript sumber terbuka yang membolehkan profesional perisian membangunkan aplikasi berkuasa untuk bekerja dengan fail PDF. Pustaka ini sangat kaya dengan ciri dan direka bentuk untuk berfungsi dalam mana-mana masa jalan JavaScript moden. Ia telah menyertakan sokongan untuk penciptaan fail PDF baharu, mengedit dokumen PDF sedia ada, mencipta borang, menambah atau mengalih keluar halaman PDF, Menyalin halaman antara PDF, melukis teks & imej, mengukur lebar dan ketinggian teks, membelah dan menggabungkan dokumen, membaca & tetapkan metadata PDF, Lukis Grafik Vektor dan banyak lagi.
Pustaka ditulis dalam Typescript dan disusun kepada JavaScript tulen tanpa kebergantungan lain. Satu tujuan besar penciptaan perpustakaan PDF-Lib adalah untuk menangani kekurangan sokongan teguh ekosistem JavaScript untuk penyuntingan atau pengubahsuaian PDF. Terdapat pelbagai perpustakaan JavaScript yang baik yang menyokong penciptaan fail PDF tetapi sangat sedikit yang menyertakan sokongan kuat untuk pengubahsuaian PDF. PDF-Lib telah menyertakan sokongan lengkap untuk pengubahsuaian PDF serta berfungsi dalam semua persekitaran JavaScript (bukan hanya Node atau Pelayar).
Bermula dengan PDF-Lib
Cara yang disyorkan dan paling mudah untuk memulakan dan memasang PDF-Lib adalah melalui npm dan juga pada benang, di bawah adalah arahannya.
pasang PDF-Lib melalui npm
npm install --save pdf-lib
pasang PDF-Lib melalui benang
yarn add pdf-lib
Penciptaan & Pengubahsuaian Dokumen PDF melalui JavaScript
Pustaka PDF-Lib sumber terbuka telah menyertakan fungsi lengkap untuk penciptaan dokumen PDF serta pengubahsuaian. Pembangun perisian boleh mencipta dokumen PDF baharu dari awal dengan hanya beberapa baris kod JavaScript di dalam aplikasi mereka sendiri. Setelah dibuat pembangun boleh memasukkan teks, melukis imej atau grafik vektor, membenamkan fon mereka, menyalin dan membenamkan halaman daripada PDF lain, menggunakan pemformatan dan gaya pilihan mereka, dan banyak lagi.
Cara Membuat Dokumen PDF melalui JavaScript
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()
Salin Halaman antara Dokumen PDF melalui Perpustakaan JS
Selalunya sangat berfaedah untuk menggunakan halaman sedia ada dan bukannya membuat halaman baharu dalam dokumen PDF. Pustaka PDF-Lib sumber terbuka membolehkan pengaturcara komputer menyalin halaman daripada pelbagai dokumen PDF dan menambahkannya pada dokumen PDF yang dikehendaki tanpa sebarang kebergantungan luaran. Mula-mula, anda perlu memuatkan kedua-dua fail PDF, selepas itu, anda boleh menggunakan perintah copyPages() untuk menyalin halaman yang dikehendaki, dan kemudian gunakan arahan addPage() untuk menambah halaman di lokasi yang dikehendaki di dalam dokumen PDF.
Tambahkan Teks pada PDF Sedia Ada menggunakan JavaScript
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()
Menghuraikan & Baca Metadata daripada Fail PDF
Pustaka PDF-Lib menyokong sepenuhnya mengakses dan membaca metadata dokumen PDF. Metadata ialah bahagian yang sangat penting dalam dokumen PDF dan telah memasukkan maklumat yang sangat penting tentang PDF dan kandungannya seperti tajuk, subjek, pengarang, maklumat hak cipta, pencipta, tarikh penciptaan atau pengubahsuaian, dan sebagainya. Menggunakan pembangun perisian perpustakaan PDF-Lib boleh menghuraikan dan mengekstrak metadata dengan mudah daripada dokumen PDF dengan hanya beberapa baris kod JavaScript.
Tambahkan imej pada PDF menggunakan JavaScript
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()
Tambahkan Lampiran pada PDF melalui API JavaScript
Kadangkala kami perlu memberikan maklumat yang lebih terperinci tentang fail PDF, supaya kami boleh melampirkan fail lain pada fail tersebut. Kini manfaat fail itu ialah lampiran akan dibawa bersama PDF jika anda mengalihkannya ke lokasi lain. Pustaka PDF-Lib sumber terbuka memberi pembangun perisian keupayaan untuk melampirkan fail lain pada dokumen PDF mereka di dalam apl JavaScript mereka. Anda boleh melampirkan pelbagai jenis fail pada PDF, seperti Microsoft Word, Excel, imej, video atau juga PDF lain.
Tambahkan Lampiran pada PDF menggunakan JavaScript
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()