По умолчанию PDF-LIB использует шрифты с кодировкой ANSI. Достаточно загрузить в библиотеку сторонний шрифт, например Microsoft Sans Serif, через метод embedFont() и указывать нужный шрифт при написании текста.
// Загружаем PDF
const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
const existingPdfBytes = await fetch(url).then(res => res.arrayBuffer())
// Загружаем шрифт с поддержкой русского языка, в данном случае это Microsoft Sans Serif
const url2 = 'https://db.onlinewebfonts.com/t/643e59524d730ce6c6f2384eebf945f8.ttf'
const fontBytes = await fetch(url2).then(res => res.arrayBuffer())
const pdfDoc = await PDFDocument.load(existingPdfBytes)
// Устанавливаем шрифт
let customFont;
if (fontBytes) {
pdfDoc.registerFontkit(fontkit);
await pdfDoc.embedFont(fontBytes);
customFont = await pdfDoc.embedFont(fontBytes);
}
const pages = pdfDoc.getPages()
const firstPage = pages[0]
const { width, height } = firstPage.getSize()
firstPage.drawText('Привет мир!', {
x: 5,
y: height / 2 + 300,
size: 50,
font: customFont, // Указываем наш кастомный шрифт
color: rgb(0.95, 0.1, 0.1),
rotate: degrees(-45),
})
Важно подключить в проекте
pdf-lib/fontkit, что бы зарегистрировать шрифт в библиотеке через registerFontkit().