Open Source JavaScript Library עבור יצירה ושינוי של PDF קבצים, הוסף עמודי עותק והוסף תמונות ל-PDF דרך JavaScript.

PDF-Lib היא ספריית קוד פתוח JavaScript המאפשרת לאנשי תוכנה לפתח יישומים רבי עוצמה לעבודה עם PDF קבצים. הספרייה עשירה בתכונות ותוכננה לעבוד בכל JavaScript ימים מודרניים. הוא כלל תמיכה ביצירת PDF קבצים חדשים, עריכת PDF מסמכים קיימים, יצירת טפסים, הוספה או הסרת PDF עמודים, העתקה עמודים בין PDFs, ציור טקסט תמונות, מדידת רוחב וגובה של הטקסט,

הספרייה נכתבת ב-Typescript ומעוצבת ל JavaScript טהור ללא תלות אחרת. אחת המטרות הגדולות של יצירת ספריית PDF-Lib הייתה לענות על חוסר התמיכה של המערכת האקולוגית של PDF עריכה או שינוי. ישנן JavaScript ספריות טובות שתומכות ביצירת PDF קבצים, אך רק מעטים כללו תמיכה חזקה לשינוי של PDF קבצים. PDF-Lib כלל תמיכה מלאה בשינויים של PDF וכן עבודה בכל JavaScript הסביבות (לא רק Node או דפדפן).

Previous Next

להתחיל עם DF-Lib

הדרך המומלצת והקלה ביותר להתחיל ולהתקין DF-Lib היא באמצעות קהות כמו גם ב yarn, להלן הפקודה.

התקנת DF-Lib באמצעות מספר

 npm install --save pdf-lib 

התקנת DF-Lib באמצעות yarn

 yarn add pdf-lib 

PDF מסמכים יצירה ושינוי דרך JavaScript

ספריית הקוד הפתוח PDF-Lib כללה פונקציונליות מלאה ליצירת מסמכים PDF כמו גם שינוי. מפתחי תוכנה יכולים ליצור מסמך PDF חדש מאפס עם רק כמה שורות של JavaScript קוד ביישומים שלהם. לאחר שהמפתחים יצרו יכולים להוסיף טקסט, לצייר תמונות או גרפיקה של וקטור, להטביע את גופם, להעתיק ולדפים מוטמעים מ-PDFs, ליישם עיצוב וסגנונות של הבחירה שלהם, ועוד.

כיצד ליצור 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 המסמכים הרצויים ללא כל תלות חיצונית. תחילה עליך לטעון את שני הקבצים, לאחר מכן, באפשרותך להשתמש בפקודה 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()

קרא מטא-נתונים מ-PDF קבצים

ספריית PDF-Lib תומכת באופן מלא בגישה ובקריאה של PDF מסמכים. Metadata הוא חלק חשוב מאוד של PDF מסמכים וכלל מידע משמעותי מאוד על PDF ותכניו כגון כותרת, נושא, מידע זכויות יוצרים, יוצר, תאריך יצירה או שינוי, וכן הלאה. באמצעות מפתחי תוכנה PDF-Lib יכול בקלות לנתח ולחלץ metadata ממסמך 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()
 עִברִית