PDF การสร้างและแก้ไขผ่านโอเพ่นซอร์ส JavaScript API

เปิดแหล่ง JavaScript ห้องสมุดสําหรับการสร้างและแก้ไข PDF ไฟล์, เพิ่มและคัดลอกหน้าและแทรกภาพไปยัง PDF ผ่าน JavaScript.

PDF-Lib เป็นห้องสมุดโอเพ่นซอร์ส JavaScript ที่ช่วยให้ผู้เชี่ยวชาญด้านซอฟต์แวร์พัฒนาโปรแกรมที่มีประสิทธิภาพสําหรับการทํางานกับไฟล์ PDF ห้องสมุดมีคุณลักษณะมากมายและออกแบบมาเพื่อทํางานในรันไทม์ JavaScript ที่ทันสมัย มันได้รวมการสนับสนุนสําหรับการสร้าง PDF ไฟล์ใหม่การแก้ไขเอกสาร PDF ที่มีอยู่การสร้างแบบฟอร์มการเพิ่มหรือลบ PDF หน้าคัดลอกระหว่าง PDFs วาดข้อความและรูปภาพการวัดความกว้างและความสูงของข้อความการแยกและการรวมเข้าด้วยกัน

ไลบรารีนี้เขียนด้วย Typescript และคอมไพล์เป็น JavaScript ล้วนๆ โดยไม่มีการอ้างอิงอื่นๆ จุดประสงค์ที่ยอดเยี่ยมอย่างหนึ่งของการสร้างไลบรารี PDF-Lib คือเพื่อจัดการกับการขาดการสนับสนุนที่แข็งแกร่งของระบบนิเวศ JavaScript สำหรับการแก้ไขหรือแก้ไข PDF มีไลบรารี JavaScript ที่ดีมากมายที่รองรับการสร้างไฟล์ PDF แต่มีเพียงไม่กี่ไลบรารีที่รองรับการแก้ไข PDF ที่แข็งแกร่ง PDF-Lib ได้รวมการสนับสนุนที่สมบูรณ์สำหรับการแก้ไข PDF เช่นเดียวกับการทำงานในสภาพแวดล้อม JavaScript ทั้งหมด (ไม่ใช่แค่โหนดหรือเบราว์เซอร์)

Previous Next

เริ่มต้นกับ DF-Lib

วิธีที่แนะนําและง่ายที่สุดในการเริ่มต้นและติดตั้ง DF-Lib คือผ่าน num เช่นเดียวกับที่เส้นด้ายด้านล่างคือคําสั่ง

ติดตั้ง DF-Lib ผ่าน num

 npm install --save pdf-lib 

ติดตั้ง DF-Lib ผ่านเส้นด้าย

 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 โดยไม่ต้องพึ่งพาภายนอก ก่อนอื่นคุณต้องโหลดไฟล์ทั้ง 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 นักพัฒนาซอฟต์แวร์ห้องสมุดสามารถ parse และแยก 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, ภาพ, วิดีโอหรือแม้กระทั่ง PDFs อื่น ๆ.

เพิ่มสิ่งที่แนบมาเป็น 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()
 ไทย