PDFDocument
Represents a PDF document.
Hierarchy
- PDFDocument
Index
Properties
Methods
- addJavaScript
- addPage
- attach
- copy
- copyPages
- embedFont
- embedJpg
- embedPage
- embedPages
- embedPdf
- embedPng
- embedStandardFont
- findPageForAnnotationRef
- flush
- getAuthor
- getCreationDate
- getCreator
- getForm
- getKeywords
- getModificationDate
- getPage
- getPageCount
- getPageIndices
- getPages
- getProducer
- getSubject
- getTitle
- insertPage
- registerFontkit
- removePage
- save
- saveAsBase64
- setAuthor
- setCreationDate
- setCreator
- setKeywords
- setLanguage
- setModificationDate
- setProducer
- setSubject
- setTitle
- create
- load
Properties
catalog
• catalog: PDFCatalog
Defined in api/PDFDocument.ts:173
The catalog of this document.
context
• context: PDFContext
Defined in api/PDFDocument.ts:170
The low-level context of this document.
defaultWordBreaks
• defaultWordBreaks: string[] = [' ']
Defined in api/PDFDocument.ts:179
The default word breaks used in PDFPage.drawText
isEncrypted
• isEncrypted: boolean
Defined in api/PDFDocument.ts:176
Whether or not this document is encrypted.
Methods
addJavaScript
▸ addJavaScript(name
: string, script
: string): void
Defined in api/PDFDocument.ts:810
Add JavaScript to this document. The supplied script
is executed when the
document is opened. The script
can be used to perform some operation
when the document is opened (e.g. logging to the console), or it can be
used to define a function that can be referenced later in a JavaScript
action. For example:
// Show "Hello World!" in the console when the PDF is opened
pdfDoc.addJavaScript(
'main',
'console.show(); console.println("Hello World!");'
);
// Define a function named "foo" that can be called in JavaScript Actions
pdfDoc.addJavaScript(
'foo',
'function foo() { return "foo"; }'
);
See the JavaScript for Acrobat API Reference for details.
Parameters:
Name | Type | Description |
---|---|---|
name | string | The name of the script. Must be unique per document. |
script | string | The JavaScript to execute. |
Returns: void
addPage
▸ addPage(page?
: PDFPage | [number, number]): PDFPage
Defined in api/PDFDocument.ts:644
Add a page to the end of this document. This method accepts three
different value types for the page
parameter:
Type | Behavior |
---|---|
undefined | Create a new page and add it to the end of this document |
[number, number] | Create a new page with the given dimensions and add it to the end of this document |
PDFPage | Add the existing page to the end of this document |
For example:
// page=undefined
const newPage = pdfDoc.addPage()
// page=[number, number]
import { PageSizes } from 'pdf-lib'
const newPage1 = pdfDoc.addPage(PageSizes.A7)
const newPage2 = pdfDoc.addPage(PageSizes.Letter)
const newPage3 = pdfDoc.addPage([500, 750])
// page=PDFPage
const pdfDoc1 = await PDFDocument.create()
const pdfDoc2 = await PDFDocument.load(...)
const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])
pdfDoc1.addPage(existingPage)
Parameters:
Name | Type | Description |
---|---|---|
page? | PDFPage | [number, number] | Optionally, the desired dimensions or existing page. |
Returns: PDFPage
The newly created (or existing) page.
attach
▸ attach(attachment
: string | Uint8Array | ArrayBuffer, name
: string, options
: AttachmentOptions): Promise‹void›
Defined in api/PDFDocument.ts:876
Add an attachment to this document. Attachments are visible in the
"Attachments" panel of Adobe Acrobat and some other PDF readers. Any
type of file can be added as an attachment. This includes, but is not
limited to, .png
, .jpg
, .pdf
, .csv
, .docx
, and .xlsx
files.
The input data can be provided in multiple formats:
Type | Contents |
---|---|
string | A base64 encoded string (or data URI) containing an attachment |
Uint8Array | The raw bytes of an attachment |
ArrayBuffer | The raw bytes of an attachment |
For example:
// attachment=string
await pdfDoc.attach('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...', 'cat_riding_unicorn.jpg', {
mimeType: 'image/jpeg',
description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
creationDate: new Date('2019/12/01'),
modificationDate: new Date('2020/04/19'),
})
await pdfDoc.attach('data:image/jpeg;base64,/9j/4AAQ...', 'cat_riding_unicorn.jpg', {
mimeType: 'image/jpeg',
description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
creationDate: new Date('2019/12/01'),
modificationDate: new Date('2020/04/19'),
})
// attachment=Uint8Array
import fs from 'fs'
const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')
await pdfDoc.attach(uint8Array, 'cat_riding_unicorn.jpg', {
mimeType: 'image/jpeg',
description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
creationDate: new Date('2019/12/01'),
modificationDate: new Date('2020/04/19'),
})
// attachment=ArrayBuffer
const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'
const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
await pdfDoc.attach(arrayBuffer, 'cat_riding_unicorn.jpg', {
mimeType: 'image/jpeg',
description: 'Cool cat riding a unicorn! 🦄🐈🕶️',
creationDate: new Date('2019/12/01'),
modificationDate: new Date('2020/04/19'),
})
Parameters:
Name | Type | Default | Description |
---|---|---|---|
attachment | string | Uint8Array | ArrayBuffer | - | The input data containing the file to be attached. |
name | string | - | The name of the file to be attached. |
options | AttachmentOptions | {} | - |
Returns: Promise‹void›
Resolves when the attachment is complete.
copy
▸ copy(): Promise‹PDFDocument›
Defined in api/PDFDocument.ts:752
Get a copy of this document.
For example:
const srcDoc = await PDFDocument.load(...)
const pdfDoc = await srcDoc.copy()
NOTE: This method won't copy all information over to the new document (acroforms, outlines, etc...).
Returns: Promise‹PDFDocument›
Resolves with a copy this document.
copyPages
▸ copyPages(srcDoc
: PDFDocument, indices
: number[]): Promise‹PDFPage[]›
Defined in api/PDFDocument.ts:722
Copy pages from a source document into this document. Allows pages to be copied between different PDFDocument instances. For example:
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)
Parameters:
Name | Type | Description |
---|---|---|
srcDoc | PDFDocument | The document from which pages should be copied. |
indices | number[] | The indices of the pages that should be copied. |
Returns: Promise‹PDFPage[]›
Resolves with an array of pages copied into this document.
embedFont
▸ embedFont(font
: StandardFonts | string | Uint8Array | ArrayBuffer, options
: EmbedFontOptions): Promise‹PDFFont›
Defined in api/PDFDocument.ts:938
Embed a font into this document. The input data can be provided in multiple formats:
Type | Contents |
---|---|
StandardFonts | One of the standard 14 fonts |
string | A base64 encoded string (or data URI) containing a font |
Uint8Array | The raw bytes of a font |
ArrayBuffer | The raw bytes of a font |
For example:
// font=StandardFonts
import { StandardFonts } from 'pdf-lib'
const font1 = await pdfDoc.embedFont(StandardFonts.Helvetica)
// font=string
const font2 = await pdfDoc.embedFont('AAEAAAAVAQAABABQRFNJRx/upe...')
const font3 = await pdfDoc.embedFont('data:font/opentype;base64,AAEAAA...')
// font=Uint8Array
import fs from 'fs'
const font4 = await pdfDoc.embedFont(fs.readFileSync('Ubuntu-R.ttf'))
// font=ArrayBuffer
const url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf'
const ubuntuBytes = await fetch(url).then(res => res.arrayBuffer())
const font5 = await pdfDoc.embedFont(ubuntuBytes)
See also: registerFontkit
Parameters:
Name | Type | Default | Description |
---|---|---|---|
font | StandardFonts | string | Uint8Array | ArrayBuffer | - | The input data for a font. |
options | EmbedFontOptions | {} | The options to be used when embedding the font. |
Returns: Promise‹PDFFont›
Resolves with the embedded font.
embedJpg
▸ embedJpg(jpg
: string | Uint8Array | ArrayBuffer): Promise‹PDFImage›
Defined in api/PDFDocument.ts:1030
Embed a JPEG image into this document. The input data can be provided in multiple formats:
Type | Contents |
---|---|
string | A base64 encoded string (or data URI) containing a JPEG image |
Uint8Array | The raw bytes of a JPEG image |
ArrayBuffer | The raw bytes of a JPEG image |
For example:
// jpg=string
const image1 = await pdfDoc.embedJpg('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...')
const image2 = await pdfDoc.embedJpg('data:image/jpeg;base64,/9j/4AAQ...')
// jpg=Uint8Array
import fs from 'fs'
const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')
const image3 = await pdfDoc.embedJpg(uint8Array)
// jpg=ArrayBuffer
const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'
const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
const image4 = await pdfDoc.embedJpg(arrayBuffer)
Parameters:
Name | Type | Description |
---|---|---|
jpg | string | Uint8Array | ArrayBuffer | The input data for a JPEG image. |
Returns: Promise‹PDFImage›
Resolves with the embedded image.
embedPage
▸ embedPage(page
: PDFPage, boundingBox?
: PageBoundingBox, transformationMatrix?
: TransformationMatrix): Promise‹PDFEmbeddedPage›
Defined in api/PDFDocument.ts:1152
Embed a single PDF page into this document.
For example:
const pdfDoc = await PDFDocument.create()
const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'
const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())
const sourcePdfDoc = await PDFDocument.load(sourceBuffer)
const sourcePdfPage = sourcePdfDoc.getPages()[73]
const embeddedPage = await pdfDoc.embedPage(
sourcePdfPage,
// Clip a section of the source page so that we only embed part of it
{ left: 100, right: 450, bottom: 330, top: 570 },
// Translate all drawings of the embedded page by (10, 200) units
[1, 0, 0, 1, 10, 200],
)
Parameters:
Name | Type | Description |
---|---|---|
page | PDFPage | The page to be embedded. |
boundingBox? | PageBoundingBox | Optionally, an area of the source page that should be embedded (defaults to entire page). |
transformationMatrix? | TransformationMatrix | Optionally, a transformation matrix that is always applied to the embedded page anywhere it is drawn. |
Returns: Promise‹PDFEmbeddedPage›
Resolves with the embedded pdf page.
embedPages
▸ embedPages(pages
: PDFPage[], boundingBoxes
: undefined | PageBoundingBox[], transformationMatrices
: undefined | [number, number, number, number, number, number][]): Promise‹PDFEmbeddedPage‹›[]›
Defined in api/PDFDocument.ts:1194
Embed one or more PDF pages into this document.
For example:
const pdfDoc = await PDFDocument.create()
const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'
const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())
const sourcePdfDoc = await PDFDocument.load(sourceBuffer)
const page1 = sourcePdfDoc.getPages()[0]
const page2 = sourcePdfDoc.getPages()[52]
const page3 = sourcePdfDoc.getPages()[73]
const embeddedPages = await pdfDoc.embedPages([page1, page2, page3])
Parameters:
Name | Type | Default | Description |
---|---|---|---|
pages | PDFPage[] | - | - |
boundingBoxes | undefined | PageBoundingBox[] | [] | Optionally, an array of clipping boundaries - one for each page (defaults to entirety of each page). |
transformationMatrices | undefined | [number, number, number, number, number, number][] | [] | Optionally, an array of transformation matrices - one for each page (each page's transformation will apply anywhere it is drawn). |
Returns: Promise‹PDFEmbeddedPage‹›[]›
Resolves with an array of the embedded pdf pages.
embedPdf
▸ embedPdf(pdf
: string | Uint8Array | ArrayBuffer | PDFDocument, indices
: number[]): Promise‹PDFEmbeddedPage[]›
Defined in api/PDFDocument.ts:1100
Embed one or more PDF pages into this document.
For example:
const pdfDoc = await PDFDocument.create()
const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'
const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())
// Embed page 74 of `sourcePdf` into `pdfDoc`
const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, [73])
See PDFDocument.load for examples of the allowed input data formats.
Parameters:
Name | Type | Default | Description |
---|---|---|---|
pdf | string | Uint8Array | ArrayBuffer | PDFDocument | - | The input data containing a PDF document. |
indices | number[] | [0] | The indices of the pages that should be embedded. |
Returns: Promise‹PDFEmbeddedPage[]›
Resolves with an array of the embedded pages.
embedPng
▸ embedPng(png
: string | Uint8Array | ArrayBuffer): Promise‹PDFImage›
Defined in api/PDFDocument.ts:1070
Embed a PNG image into this document. The input data can be provided in multiple formats:
Type | Contents |
---|---|
string | A base64 encoded string (or data URI) containing a PNG image |
Uint8Array | The raw bytes of a PNG image |
ArrayBuffer | The raw bytes of a PNG image |
For example:
// png=string
const image1 = await pdfDoc.embedPng('iVBORw0KGgoAAAANSUhEUgAAAlgAAAF3...')
const image2 = await pdfDoc.embedPng('data:image/png;base64,iVBORw0KGg...')
// png=Uint8Array
import fs from 'fs'
const uint8Array = fs.readFileSync('small_mario.png')
const image3 = await pdfDoc.embedPng(uint8Array)
// png=ArrayBuffer
const url = 'https://pdf-lib.js.org/assets/small_mario.png'
const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
const image4 = await pdfDoc.embedPng(arrayBuffer)
Parameters:
Name | Type | Description |
---|---|---|
png | string | Uint8Array | ArrayBuffer | The input data for a PNG image. |
Returns: Promise‹PDFImage›
Resolves with the embedded image.
embedStandardFont
▸ embedStandardFont(font
: StandardFonts, customName?
: undefined | string): PDFFont
Defined in api/PDFDocument.ts:985
Embed a standard font into this document. For example:
import { StandardFonts } from 'pdf-lib'
const helveticaFont = pdfDoc.embedFont(StandardFonts.Helvetica)
Parameters:
Name | Type | Description |
---|---|---|
font | StandardFonts | The standard font to be embedded. |
customName? | undefined | string | The name to be used when embedding the font. |
Returns: PDFFont
The embedded font.
findPageForAnnotationRef
▸ findPageForAnnotationRef(ref
: PDFRef): PDFPage | undefined
Defined in api/PDFDocument.ts:1316
Parameters:
Name | Type |
---|---|
ref | PDFRef |
Returns: PDFPage | undefined
flush
▸ flush(): Promise‹void›
Defined in api/PDFDocument.ts:1243
NOTE: You shouldn't need to call this method directly. The save and saveAsBase64 methods will automatically ensure that all embedded assets are flushed before serializing the document.
Flush all embedded fonts, PDF pages, and images to this document's context.
Returns: Promise‹void›
Resolves when the flush is complete.
getAuthor
▸ getAuthor(): string | undefined
Defined in api/PDFDocument.ts:288
Get this document's author metadata. The author appears in the "Document Properties" section of most PDF readers. For example:
const author = pdfDoc.getAuthor()
Returns: string | undefined
A string containing the author of this document, if it has one.
getCreationDate
▸ getCreationDate(): Date | undefined
Defined in api/PDFDocument.ts:364
Get this document's creation date metadata. The creation date appears in the "Document Properties" section of most PDF readers. For example:
const creationDate = pdfDoc.getCreationDate()
Returns: Date | undefined
A Date containing the creation date of this document, if it has one.
getCreator
▸ getCreator(): string | undefined
Defined in api/PDFDocument.ts:333
Get this document's creator metadata. The creator appears in the "Document Properties" section of most PDF readers. For example:
const creator = pdfDoc.getCreator()
Returns: string | undefined
A string containing the creator of this document, if it has one.
getForm
▸ getForm(): PDFForm
Defined in api/PDFDocument.ts:254
Get the PDFForm containing all interactive fields for this document. For example:
const form = pdfDoc.getForm()
const fields = form.getFields()
fields.forEach(field => {
const type = field.constructor.name
const name = field.getName()
console.log(`${type}: ${name}`)
})
Returns: PDFForm
The form for this document.
getKeywords
▸ getKeywords(): string | undefined
Defined in api/PDFDocument.ts:318
Get this document's keywords metadata. The keywords appear in the "Document Properties" section of most PDF readers. For example:
const keywords = pdfDoc.getKeywords()
Returns: string | undefined
A string containing the keywords of this document, if it has any.
getModificationDate
▸ getModificationDate(): Date | undefined
Defined in api/PDFDocument.ts:381
Get this document's modification date metadata. The modification date appears in the "Document Properties" section of most PDF readers. For example:
const modification = pdfDoc.getModificationDate()
Returns: Date | undefined
A Date containing the modification date of this document, if it has one.
getPage
▸ getPage(index
: number): PDFPage
Defined in api/PDFDocument.ts:569
Get the page rendered at a particular index
of the document. For example:
pdfDoc.getPage(0) // The first page of the document
pdfDoc.getPage(2) // The third page of the document
pdfDoc.getPage(197) // The 198th page of the document
Parameters:
Name | Type |
---|---|
index | number |
Returns: PDFPage
The PDFPage rendered at the given index
of the document.
getPageCount
▸ getPageCount(): number
Defined in api/PDFDocument.ts:539
Get the number of pages contained in this document. For example:
const totalPages = pdfDoc.getPageCount()
Returns: number
The number of pages in this document.
getPageIndices
▸ getPageIndices(): number[]
Defined in api/PDFDocument.ts:590
Get an array of indices for all the pages contained in this document. The
array will contain a range of integers from
0..pdfDoc.getPageCount() - 1
. For example:
const pdfDoc = await PDFDocument.create()
pdfDoc.addPage()
pdfDoc.addPage()
pdfDoc.addPage()
const indices = pdfDoc.getPageIndices()
indices // => [0, 1, 2]
Returns: number[]
An array of indices for all pages contained in this document.
getPages
▸ getPages(): PDFPage[]
Defined in api/PDFDocument.ts:556
Get an array of all the pages contained in this document. The pages are stored in the array in the same order that they are rendered in the document. For example:
const pages = pdfDoc.getPages()
pages[0] // The first page of the document
pages[2] // The third page of the document
pages[197] // The 198th page of the document
Returns: PDFPage[]
An array of all the pages contained in this document.
getProducer
▸ getProducer(): string | undefined
Defined in api/PDFDocument.ts:348
Get this document's producer metadata. The producer appears in the "Document Properties" section of most PDF readers. For example:
const producer = pdfDoc.getProducer()
Returns: string | undefined
A string containing the producer of this document, if it has one.
getSubject
▸ getSubject(): string | undefined
Defined in api/PDFDocument.ts:303
Get this document's subject metadata. The subject appears in the "Document Properties" section of most PDF readers. For example:
const subject = pdfDoc.getSubject()
Returns: string | undefined
A string containing the subject of this document, if it has one.
getTitle
▸ getTitle(): string | undefined
Defined in api/PDFDocument.ts:273
Get this document's title metadata. The title appears in the "Document Properties" section of most PDF readers. For example:
const title = pdfDoc.getTitle()
Returns: string | undefined
A string containing the title of this document, if it has one.
insertPage
▸ insertPage(index
: number, page?
: PDFPage | [number, number]): PDFPage
Defined in api/PDFDocument.ts:681
Insert a page at a given index within this document. This method accepts
three different value types for the page
parameter:
Type | Behavior |
---|---|
undefined | Create a new page and insert it into this document |
[number, number] | Create a new page with the given dimensions and insert it into this document |
PDFPage | Insert the existing page into this document |
For example:
// page=undefined
const newPage = pdfDoc.insertPage(2)
// page=[number, number]
import { PageSizes } from 'pdf-lib'
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(...)
const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])
pdfDoc1.insertPage(0, existingPage)
Parameters:
Name | Type | Description |
---|---|---|
index | number | The index at which the page should be inserted (zero-based). |
page? | PDFPage | [number, number] | Optionally, the desired dimensions or existing page. |
Returns: PDFPage
The newly created (or existing) page.
registerFontkit
▸ registerFontkit(fontkit
: Fontkit): void
Defined in api/PDFDocument.ts:236
Register a fontkit instance. This must be done before custom fonts can be embedded. See here for instructions on how to install and register a fontkit instance.
You do not need to call this method to embed standard fonts.
For example:
import { PDFDocument } from 'pdf-lib'
import fontkit from '@pdf-lib/fontkit'
const pdfDoc = await PDFDocument.create()
pdfDoc.registerFontkit(fontkit)
Parameters:
Name | Type | Description |
---|---|---|
fontkit | Fontkit | The fontkit instance to be registered. |
Returns: void
removePage
▸ removePage(index
: number): void
Defined in api/PDFDocument.ts:605
Remove the page at a given index from this document. For example:
pdfDoc.removePage(0) // Remove the first page of the document
pdfDoc.removePage(2) // Remove the third page of the document
pdfDoc.removePage(197) // Remove the 198th page of the document
Once a page has been removed, it will no longer be rendered at that index in the document.
Parameters:
Name | Type | Description |
---|---|---|
index | number | The index of the page to be removed. |
Returns: void
save
▸ save(options
: SaveOptions): Promise‹Uint8Array›
Defined in api/PDFDocument.ts:1267
Serialize this document to an array of bytes making up a PDF file. For example:
const pdfBytes = await pdfDoc.save()
There are a number of things you can do with the serialized document, depending on the JavaScript environment you're running in:
- Write it to a file in Node or React Native
- Download it as a Blob in the browser
- Render it in an
iframe
Parameters:
Name | Type | Default | Description |
---|---|---|---|
options | SaveOptions | {} | The options to be used when saving the document. |
Returns: Promise‹Uint8Array›
Resolves with the bytes of the serialized document.
saveAsBase64
▸ saveAsBase64(options
: Base64SaveOptions): Promise‹string›
Defined in api/PDFDocument.ts:1308
Serialize this document to a base64 encoded string or data URI making up a PDF file. For example:
const base64String = await pdfDoc.saveAsBase64()
base64String // => 'JVBERi0xLjcKJYGBgYEKC...'
const base64DataUri = await pdfDoc.saveAsBase64({ dataUri: true })
base64DataUri // => 'data:application/pdf;base64,JVBERi0xLjcKJYGBgYEKC...'
Parameters:
Name | Type | Default | Description |
---|---|---|---|
options | Base64SaveOptions | {} | The options to be used when saving the document. |
Returns: Promise‹string›
Resolves with a base64 encoded string or data URI of the serialized document.
setAuthor
▸ setAuthor(author
: string): void
Defined in api/PDFDocument.ts:425
Set this document's author metadata. The author will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setAuthor('Humpty Dumpty')
Parameters:
Name | Type | Description |
---|---|---|
author | string | The author of this document. |
Returns: void
setCreationDate
▸ setCreationDate(creationDate
: Date): void
Defined in api/PDFDocument.ts:511
Set this document's creation date metadata. The creation date will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setCreationDate(new Date())
Parameters:
Name | Type | Description |
---|---|---|
creationDate | Date | The date this document was created. |
Returns: void
setCreator
▸ setCreator(creator
: string): void
Defined in api/PDFDocument.ts:467
Set this document's creator metadata. The creator will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setCreator('PDF App 9000 🤖')
Parameters:
Name | Type | Description |
---|---|---|
creator | string | The creator of this document. |
Returns: void
setKeywords
▸ setKeywords(keywords
: string[]): void
Defined in api/PDFDocument.ts:453
Set this document's keyword metadata. These keywords will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])
Parameters:
Name | Type | Description |
---|---|---|
keywords | string[] | An array of keywords associated with this document. |
Returns: void
setLanguage
▸ setLanguage(language
: string): void
Defined in api/PDFDocument.ts:497
Set this document's language metadata. The language will appear in the "Document Properties" section of some PDF readers. For example:
pdfDoc.setLanguage('en-us')
Parameters:
Name | Type | Description |
---|---|---|
language | string | An RFC 3066 Language-Tag denoting the language of this document, or an empty string if the language is unknown. |
Returns: void
setModificationDate
▸ setModificationDate(modificationDate
: Date): void
Defined in api/PDFDocument.ts:526
Set this document's modification date metadata. The modification date will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setModificationDate(new Date())
Parameters:
Name | Type | Description |
---|---|---|
modificationDate | Date | The date this document was last modified. |
Returns: void
setProducer
▸ setProducer(producer
: string): void
Defined in api/PDFDocument.ts:481
Set this document's producer metadata. The producer will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setProducer('PDF App 9000 🤖')
Parameters:
Name | Type | Description |
---|---|---|
producer | string | The producer of this document. |
Returns: void
setSubject
▸ setSubject(subject
: string): void
Defined in api/PDFDocument.ts:439
Set this document's subject metadata. The subject will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setSubject('📘 An Epic Tale of Woe 📖')
Parameters:
Name | Type | Description |
---|---|---|
subject | string | The subject of this document. |
Returns: void
setTitle
▸ setTitle(title
: string, options?
: SetTitleOptions): void
Defined in api/PDFDocument.ts:405
Set this document's title metadata. The title will appear in the "Document Properties" section of most PDF readers. For example:
pdfDoc.setTitle('🥚 The Life of an Egg 🍳')
To display the title in the window's title bar, set the
showInWindowTitleBar
option to true
(works for most PDF readers).
For example:
pdfDoc.setTitle('🥚 The Life of an Egg 🍳', { showInWindowTitleBar: true })
Parameters:
Name | Type | Description |
---|---|---|
title | string | The title of this document. |
options? | SetTitleOptions | The options to be used when setting the title. |
Returns: void
Static
create
▸ create(options
: CreateOptions): Promise‹PDFDocument‹››
Defined in api/PDFDocument.ts:157
Create a new PDFDocument.
Parameters:
Name | Type | Default |
---|---|---|
options | CreateOptions | {} |
Returns: Promise‹PDFDocument‹››
Resolves with the newly created document.
Static
load
▸ load(pdf
: string | Uint8Array | ArrayBuffer, options
: LoadOptions): Promise‹PDFDocument‹››
Defined in api/PDFDocument.ts:126
Load an existing PDFDocument. The input data can be provided in multiple formats:
Type | Contents |
---|---|
string | A base64 encoded string (or data URI) containing a PDF |
Uint8Array | The raw bytes of a PDF |
ArrayBuffer | The raw bytes of a PDF |
For example:
import { PDFDocument } from 'pdf-lib'
// pdf=string
const base64 =
'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +
'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +
'6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +
'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +
'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +
'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +
'20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +
'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +
'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +
'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +
'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +
'5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +
'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +
'FydHhyZWYKNTEwCiUlRU9G'
const dataUri = 'data:application/pdf;base64,' + base64
const pdfDoc1 = await PDFDocument.load(base64)
const pdfDoc2 = await PDFDocument.load(dataUri)
// pdf=Uint8Array
import fs from 'fs'
const uint8Array = fs.readFileSync('with_update_sections.pdf')
const pdfDoc3 = await PDFDocument.load(uint8Array)
// pdf=ArrayBuffer
const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
const pdfDoc4 = await PDFDocument.load(arrayBuffer)
Parameters:
Name | Type | Default | Description |
---|---|---|---|
pdf | string | Uint8Array | ArrayBuffer | - | The input data containing a PDF document. |
options | LoadOptions | {} | The options to be used when loading the document. |
Returns: Promise‹PDFDocument‹››
Resolves with a document loaded from the input.