356 words, 2 min read

Poppler’s pdftoppm tool is commonly used to render PDFs into images for processing, previews, or conversion pipelines. On Ubuntu 22.04, the default Poppler version (22.02) can run into issues when rendering PDFs that contain Korean text, especially when fonts are missing or incorrectly substituted.

This post explains a practical fix that avoids upgrading Poppler entirely.

The problem

When rendering certain Korean PDFs with pdftoppm, the output may show:

  • missing characters (blank boxes or β€œtofu” glyphs)
  • incorrect font substitution
  • broken or unreadable text rendering

This is often not caused by Poppler itself, but by missing font configuration and CMap data required for CJK (Chinese, Japanese, Korean) text handling.

The root cause

Poppler relies on the system font stack and external mapping data:

  • Fontconfig: resolves font substitutions
  • CJK fonts: provide actual glyphs for Korean characters
  • Poppler CMap data: maps PDF encodings to Unicode correctly

On a minimal Ubuntu server installation, two key components are often missing:

  • poppler-data
  • CJK font packages such as Noto Sans CJK

The fix

Instead of upgrading Poppler, installing the correct font dependencies resolves the issue.

1. Install CJK fonts

sudo apt install fonts-noto-cjk fonts-noto-core fonts-unifont

2. Install Poppler CMap data

sudo apt install poppler-data

3. Rebuild the font cache

fc-cache -fv

Verify the fix

Re-run your rendering command:

pdftoppm input.pdf output

Korean text should now render correctly in the generated images.

Why this works

Poppler 22.x is capable of rendering CJK PDFs correctly, but only when:

  • the system provides appropriate glyph fonts
  • CMap mappings are available via poppler-data

Without these, Poppler falls back to incomplete or incorrect font substitution, leading to broken output.

When you actually need a newer Poppler

Upgrading Poppler is only necessary if:

  • rendering logic itself is broken (rare for CJK issues)
  • you need specific bug fixes or features in newer releases

For font-related issues, upgrading is usually unnecessary and introduces avoidable dependency complexity.

Conclusion

If you encounter broken Korean text rendering in pdftoppm on Ubuntu 22.04, the fix is typically not a Poppler upgrade but a missing font stack.

Installing fonts-noto-cjk and poppler-data resolves most cases immediately and keeps your system stable without rebuilding core libraries.