CJK Font Dependencies#
Missing CJK (Chinese, Japanese, Korean) fonts on Linux/Unix systems cause silent text extraction failures in MinerU — affected PDFs produce empty or partially empty output with no error logged. The problem is specific to Linux bare-metal installs; Docker images include the fonts by default.
Root Cause#
Since MinerU v2.0, pypdfium2 replaced pymupdf as the PDF rendering engine to avoid the AGPLv3 license . pypdfium2 renders PDF pages to images before text extraction. On Linux distributions that lack CJK system fonts, glyphs in CJK documents cannot be rasterized, so the rendered image contains no recognizable text — causing the extractor to return empty content silently .
Key symptoms:
- Parsing output is empty or missing body text with no error messages
- Forcing OCR or switching backends does not help
- Converting the same PDF page to a JPG separately and parsing that may succeed
- Only some PDFs are affected (those with embedded CJK glyphs that rely on system fonts)
Fix: Install Noto CJK Fonts (Ubuntu/Debian)#
sudo apt update
sudo apt install fonts-noto-core
sudo apt install fonts-noto-cjk
fc-cache -fv
This is the canonical fix documented in the FAQ and confirmed by users in issues #5182 and #2915.
Workaround: Enable OCR#
For documents where font installation is not possible, enabling OCR (forcing image-based text recognition) bypasses the rendering pipeline entirely and recovers the missing text . This is slower but works regardless of system font state.
Docker: Fonts Pre-installed#
All official MinerU Docker images install the required fonts during image build :
docker/global/Dockerfile— installsfonts-noto-core,fonts-noto-cjk,fontconfig, and runsfc-cache -fv- All
docker/china/variants (NPU, MLU, MACA) follow the same pattern
Using Docker deployment is the recommended path for avoiding font-related issues on Linux .
No Programmatic Detection#
MinerU does not check for CJK font availability at startup or runtime. There is no warning or exception when fonts are missing — the failure is silent. Engineers debugging empty-output issues on Linux should check font installation as a first step.
References#
| Resource | Link |
|---|---|
| FAQ entry (English) | docs/en/faq/index.md:44-59 |
| Global Dockerfile | docker/global/Dockerfile:8-17 |
| Issue #5182 (empty body) | |
| Issue #5178 (partial content loss) |