pdf-lib cheat sheet

Posted Wednesday, November 5, 2025 by Sri. Tagged MEMO, CHEATSHEET

I’m using the pdf-lib Javascript library to generate PDF files, but the API reference material is not very good for getting a sense of what the library can do at-a-glance. This is my reference cheat sheet (WIP)

PDFPage Drawing Operations

Access these through calls like page.drawCircle({x:10, y:10, size:100})

Shared Options

all operators

opacity, blendMode

shape fill

color

shape stroke

borderWidth, borderColor

shape stroke styles

borderDashArray, borderDashPhase, borderLineCap

Drawing Operations

drawCircle(opt)

{ x, y, size }

drawSquare(opt)

{ x, y, size }

drawRectangle(opt)

{ x, y, xSkew, ySkew, width, height }

drawSvgPath( svgPath, opt )

{ x, y, scale, rotate }

drawLine(opt)

{ x, y, opacity, blendMod, start, end, thickness, dashArray, dashPhase, lineCap }

drawEllipse(opt)

{ x, y, xScale, yScale, rotate }

drawImage(pdfImage, opt)

{ x, y }

drawPage(embeddedPage, opt)

{ x, y, xScale, yScale, width, height, rotate, xSkew, ySkew }

drawText(textString, opt)

{ x, y, font, size, color, rotate, xSkew, ySkew, lineHeight, maxWidth, wordBreaks }

PDFPage Object Metrics

Used to get or set information about an object’s’ position, scale, or rotation. Also retrieve bounding box information and applying elative positioning.

Box Getters/Setters

getArtBox

…

getBleedBox

…

getCropBox

…

getMediaBox

…

getTrimBox

…

setArtBox

…

setBleedBox

…

setCropBox

…

setMediaBox

…

setTrimBox

…

Dimension Getters/Setters

getHeight

…

getWidth

…

getSize

…

setHeight

…

setWidth

…

setSize

…

Position Getters

getPosition

…

getX

…

getY

…

Relative Positioning

moveDown

…

moveLeft

…

moveRight

…

moveTo

…

moveUp

…

resetPosition

…

Transformations

scale

…

scaleAnnotations

…

scaleContent

…

translateContent

…

getRotation

…

setRotation

…

PDFPage Font State

Font State

setFont

…

setFontColor

…

setFontSize

…

setLineHeight

…

Low-level Factory Methods

pushOperators

…

create

…

of

…


Chat about tools and aspirational projects on my DS|CAFE Discord server. Chat me up on Mastodon and Bluesky