PDF-oprettelse og -redigering via Open Source JavaScript API
Open Source JavaScript-bibliotek til at oprette og ændre PDF-filer, tilføje og kopiere sider og indsætte billeder til PDF via JavaScript.
PDF-Lib er et open source JavaScript-bibliotek, der gør det muligt for softwareprofessionelle at udvikle kraftfulde applikationer til at arbejde med PDF-filer. Biblioteket er meget funktionsrigt og designet til at fungere i enhver moderne JavaScript-runtime. Det har inkluderet understøttelse af oprettelse af nye PDF-filer, redigering af eksisterende PDF-dokumenter, oprettelse af formularer, tilføjelse eller fjernelse af PDF-sider, Kopier sider mellem PDF-filer, tegning af tekst og billeder, måling af tekstens bredde og højde, opdeling og fletning af dokumenter, læs og sæt PDF-metadata, Tegn vektorgrafik og mange flere.
Biblioteket er skrevet i Typescript og kompileret til ren JavaScript uden andre afhængigheder. Et stort formål med oprettelsen af PDF-Lib-biblioteket var at løse JavaScript-økosystemets mangel på robust understøttelse af PDF-redigering eller -modifikation. Der er forskellige gode JavaScript-biblioteker, der understøtter oprettelsen af PDF-filer, men meget få inkluderede stærk understøttelse af PDF-modifikation. PDF-Lib har inkluderet komplet understøttelse af PDF-modifikation samt arbejde i alle JavaScript-miljøer (ikke kun Node eller browseren).
Kom godt i gang med PDF-Lib
Den anbefalede og nemmeste måde at komme i gang og installere PDF-Lib på er via npm samt på garn, herunder er kommandoen.
installer PDF-Lib via npm
npm install --save pdf-lib
installer PDF-Lib via garn
yarn add pdf-lib
Oprettelse og ændring af PDF-dokumenter via JavaScript
Open source PDF-Lib-biblioteket har inkluderet komplet funktionalitet til oprettelse af PDF-dokumenter samt modifikation. Softwareudviklere kan oprette et nyt PDF-dokument fra bunden med blot et par linjer JavaScript-kode i deres egne applikationer. Når udviklere er oprettet, kan de indsætte tekst, tegne billeder eller vektorgrafik, integrere deres skrifttyper, kopiere og integrere sider fra andre PDF-filer, anvende formatering og stilarter efter eget valg og meget mere.
Sådan opretter du PDF-dokumenter via 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()
Kopier sider mellem PDF-dokumenter via JS Library
Det er ofte meget fordelagtigt at bruge en eksisterende side i stedet for at oprette en ny side inde i et PDF-dokument. Open source PDF-Lib-biblioteket gør det muligt for computerprogrammører at kopiere sider fra forskellige PDF-dokumenter og tilføje dem til deres ønskede PDF-dokumenter uden nogen ekstern afhængighed. Først skal du indlæse begge PDF-filer, derefter kan du bruge kommandoen copyPages() til at kopiere de ønskede sider, og derefter bruge kommandoen addPage() til at tilføje siden på den ønskede placering inde i PDF-dokumenterne.
Tilføj tekst til eksisterende PDF ved hjælp af 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()
Parse og læse metadata fra PDF-filer
PDF-Lib-biblioteket understøtter fuldt ud adgang til og læsning af metadata for PDF-dokumenter. Metadata er en meget vigtig del af PDF-dokumenter og har inkluderet meget væsentlig information om PDF'en og dens indhold, såsom titel, emne, forfatter, copyright-oplysninger, skaber, dato for oprettelse eller ændring, og så videre. Ved at bruge PDF-Lib-bibliotekssoftware kan udviklere nemt parse og udtrække metadata fra et PDF-dokument med blot et par linjer JavaScript-kode.
Tilføj billede til PDF ved hjælp af 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()
Tilføj vedhæftede filer til PDF via JavaScript API
Nogle gange er vi nødt til at give mere detaljerede oplysninger om en PDF-fil, så vi kan vedhæfte en anden fil til den fil. Nu vil fordelen ved den fil være, at den vedhæftede fil vil rejse med PDF'en, hvis du flytter den til en anden placering. Open source PDF-Lib-biblioteket giver softwareudviklere mulighed for at vedhæfte andre filer til deres PDF-dokumenter i deres JavaScript-apps. Det er muligt at vedhæfte forskellige typer filer til en PDF, såsom Microsoft Word, Excel, billeder, video eller endda andre PDF-filer.
Tilføj vedhæftede filer til PDF ved hjælp af 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()