If you've ever tried to generate a PDF with jsPDF that contains Cyrillic (or really any non-Latin text), you've probably seen this: instead of your text, you get garbage characters, question marks, or nothing at all.

I hit this exact wall while building an invoicing app that needed to output quotes in both English and Bulgarian. Here's how I solved it properly.

Why it happens

jsPDF ships with the standard PDF fonts (Helvetica, Times, Courier). These fonts simply don't contain Cyrillic glyphs. So when you ask jsPDF to render "Оферта", it has nothing to draw.

The common "fix" you'll see online is transliteration — converting "Оферта" to "Oferta". But that's not a fix. Your Bulgarian client gets a document in mangled Latin letters, and it looks unprofessional.