PDF Создание и редактирование через Open Source JavaScript API
Библиотека с открытым исходным кодом JavaScript для создания и изменения PDF файлов, добавить & копировать страницы и вставить изображения на PDF через JavaScript.
PDF-Lib — это библиотека JavaScript с открытым исходным кодом, которая позволяет профессионалам в области программного обеспечения разрабатывать мощные приложения для работы с файлами PDF. Библиотека очень многофункциональна и предназначена для работы в любой современной среде выполнения JavaScript. Он включает поддержку создания новых PDF-файлов, редактирования существующих PDF-документов, создания форм, добавления или удаления страниц PDF, копирования страниц между PDF-файлами, рисования текста и изображений, измерения ширины и высоты текста, разделения и объединения документов, чтения и установка метаданных PDF, рисование векторной графики и многое другое.
Библиотека написана на Typescript и скомпилирована в чистый JavaScript без каких-либо других зависимостей. Одной из главных целей создания библиотеки PDF-Lib было решение проблемы отсутствия в экосистеме JavaScript надежной поддержки редактирования или модификации PDF. Существуют различные хорошие библиотеки JavaScript, поддерживающие создание PDF-файлов, но очень немногие включают мощную поддержку модификации PDF. PDF-Lib включает полную поддержку модификации PDF, а также работу во всех средах JavaScript (а не только в узле или браузере).
Начало с DF-Lib
Рекомендованный и самый простой способ начать и установить DF-Lib - через num, а также в пряжу, ниже - это команда.
установить DF-Lib через num
npm install --save pdf-lib
установить DF-Lib через пряжу
yarn add pdf-lib
Создание и изменение документов через JavaScript
Библиотека PDF-Lib с открытым исходным кодом включает полную функциональность для создания и модификации PDF-документов. Разработчики программного обеспечения могут создать новый PDF-документ с нуля, написав всего пару строк кода JavaScript в своих собственных приложениях. После создания разработчики могут вставлять текст, рисовать изображения или векторную графику, вставлять свои шрифты, копировать и вставлять страницы из других PDF-файлов, применять форматирование и стили по своему выбору и многое другое.
Как создавать PDF-документы с помощью 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()
Копировать страницы между PDF документами через S-библиотеку
Часто очень выгодно использовать существующую страницу вместо создания новой страницы внутри документа PDF. Библиотека PDF-Lib с открытым исходным кодом позволяет программистам копировать страницы из различных документов PDF и добавлять их в нужные документы PDF без каких-либо внешних зависимостей. Сначала вам нужно загрузить оба PDF-файла, после этого вы можете использовать команду copyPages() для копирования нужных страниц, а затем использовать команду addPage() для добавления страницы в нужное место внутри PDF-документов.
Добавить текст в существующий PDF с помощью 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()
Parke & Read Metadata из PDF файлов
Библиотека PDF-Lib полностью поддерживает доступ к метаданным PDF документов и их чтение. Метаданные является очень важной частью PDF документов и включает очень значительную информацию о PDF и его содержании, таких как название, предмет, автор, информация об авторском праве, создатель, дата создания или модификации и так далее. Использование PDF-Lib-разработчиков библиотечного программного обеспечения может легко изобразить и извлечь метаданные из PDF-го документа с несколькими строками JavaScript-го кода.
Добавить изображение в PDF с помощью 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()
Добавить прикрепления к PDF через JavaScript API
Иногда нам нужно предоставить более подробную информацию о файле PDF, чтобы мы могли прикрепить к этому файлу другой файл. Теперь преимущество этого файла будет заключаться в том, что вложение будет перемещаться вместе с PDF-файлом, если вы переместите его в другое место. Библиотека PDF-Lib с открытым исходным кодом дает разработчикам программного обеспечения возможность присоединять другие файлы к своим документам PDF внутри своих приложений JavaScript. К PDF-файлу можно прикреплять различные типы файлов, например, Microsoft Word, Excel, изображения, видео или даже другие PDF-файлы.
Добавить атрибуты в PDF с использованием 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()