PDF-LIB SingleLineTextLayout example
Olivia Zamora
I am needing to right align some text in a PDF I am creating with PDF-LIB, and I see in the API docs there is a function
SingleLineTextLayout with left, right, and center for alignment options
However, I have searched here and on Google and Bing and have not found any examples of how to use this function. The API documentation for PDF-LIB does not include any code examples.
1 Answer
you can do it using widthOfTextAtSize font property like this:
const pdfDoc = await PDFDocument.load(file)
const pages = pdfDoc.getPages()
const font = await pdfDoc.embedFont(StandardFonts.TimesRoman)
const fontSize = 10
let centerText = setPageTextCenter(pages[0], font, fontSize)
centerText('This text is center aligned', xPos, yPos)
let rightText = setPageTextCenter(pages[0], font, fontSize)
rightText('this text is right aligned', xPos, yPos)
const setTextCenter = (page, font, size) => { return (text, x, y) => { const widthText = font.widthOfTextAtSize(text, size) const props = { x: x - widthText / 2, y: y, size, font, } page.drawText(text, props) }
}
const setTextRight = (page, font, size) => { return (text, x, y) => { const widthText = font.widthOfTextAtSize(text, size) const props = { x: x - widthText, y: y, size, font, } page.drawText(text, props) }
}