PDFDocument简介
可以对PDF文档进行管理,包括合并和删除页面、设置文档打开方式以及创建或更改文档安全性设置。
PDFDocument.load()
加载现有的pdf文件。
PDFDocument.load(pdf: string | Uint8Array | ArrayBuffer, options?: LoadOptions):
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
string|Uint8Array|ArrayBuffer | 包含PDF文档的输入数据 | - | |
options | LoadOptions | 加载文档时要使用的选项 | {} |
LoadOptions
包含 5 种属性:
capNumbers? : undefined | false | true
上限编号ignoreEncryption? : undefined | false | true
忽略加密parseSpeed? : ParseSpeeds | number
解析速度throwOnInvalidObject? : undefined | false | true
抛出无效对象updateMetadata? : undefined | false | true
更新元数据
返回类型:Promise<PDFDocument<>>
PDFDocument.copyPages()
将页面从源文档复制到此文档中。允许页面在不同的PDFDocument实例之间复制。例如:
PDFDocument.copyPages(srcDoc: PDFDocument, indices: number[]): Promise<PDFPage[]>
// 实例
const pdfDoc = await PDFDocument.create()
const srcDoc = await PDfDocument.load(...)
const copiedPages = await pdfDoc.copyPages(srcDoc, [0, 3, 89])
const [firstPage, fourthPage, ninetiethPage] = copiedPages;
pdfDoc.addPage(fourthPage)
pdfDoc.insertPage(0, ninetiethPage)
pdfDoc.addPage(firstPage)
参数
名称 | 类型 | 描述 |
---|---|---|
srcDoc | PDF文档 | 要从中复制页面的文档 |
indices | 数字[] | 要复制的页面的索引 |
返回类型:Promise<PDFPage[]>
PDFDocument.insertPage()
在此文档中给定索引处插入页面。此方法中page
参数有三种不同值类型:
undefined
创建一个新页面并将其插入到此文档中[number, number]
创建一个具有给定尺寸的新页面并将其插入到此文档中PDFPage
将现有页面插入到此文档中
PDFDocument.insertPage(index: number, page?: [number, number] | PDFPage): PDFPage
// 实例
// page=undefined
// 在页面索引2得位置插入了一个空白页
const newPage = pdfDoc.insertPage(2)
// page=[number, number]
import { pageSizes } from 'pdf-lib'
// 创建一个A7大小的页面在索引2位置插入
const newPage1 = pdfDoc.insertPage(2, PageSizes.A7)
const newPage2 = pdfDoc.insertPage(0, PageSizes.Letter)
const newPage3 = pdfDoc.insertPage(198, [500, 750])
// page=PDFPage
const pdfDoc1 = await PDFDocument.create()
const pdfDoc2 = await PDFDocument.load(...)
// 复制pdfDoc2的第一页
const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])
// pdfDoc1第一页插入复制的那一页
pdfDoc1.insertPage(0, existingPage)
参数
名称 | 类型 | 描述 |
---|---|---|
index | number | 应在其中插入页面的索引(0开始) |
page? | PDFPage|[数字, 编号] | (可选)所需的维度或现有页面 |
返回类型:PDFPage
PDFDocument.save()
将此文档序列化为构成PDF文件的字节数组。
PDFDocument.save(options?: SaveOptions): Promise<Uint8Array>
const pdfBytes = await pdfDoc.save()
参数
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
options | SaveOptions | 保存文档时要使用的选项 | {} |
SaveOptions
包含四个属性:
addDefaultPage? : undefined | false | true
objectsPerTick? : undefined | number
updateFieldAppearances? : undefined | false | true
useObjectStreams? : undefined | false | true
返回类型:Promise‹Uint8Array›
参考文档:
链接1:PDF-LIB