OCR a Mixed-Language PDF: Check Chinese, English, and Numbers Separately
Choose OCR languages for a mixed Chinese-English PDF, inspect real sample outputs, and check characters, identifiers, numbers, and table relationships.

To OCR a mixed-language PDF, identify the scripts on the page, choose a tool that can process the PDF with the relevant recognition languages, then check the extracted text against the image. Check Chinese text, English text, numbers, and label relationships separately. Finding an English title in search does not tell you whether the Chinese body was recognized.
Adding another language is worth testing, not automatically an improvement. In our small Chinese-English experiment, adding English corrected one English label but damaged a Chinese sentence that the Chinese-only configuration had recognized. Neither of our two table configurations returned text from a simple ruled table.
That is not a verdict on multilingual OCR in general. It is a reason to judge the output you need, rather than the number of languages selected.
First distinguish missing text from incorrect text
Keep the original file unchanged. On a copy, select a sentence from a representative page and paste it into a plain-text editor. Try a Chinese passage and an English passage, not just the document title.
| What you find | What to do next |
|---|---|
| Nothing can be selected or copied | Treat the page as potentially image-only and run OCR. |
| Text copies, but characters differ from the visible page | Investigate an incorrect existing text layer; simply opening and saving may leave it unchanged. |
| Some pages copy correctly and others do not | Inventory the affected pages before applying a whole-document operation. |
| Words copy correctly but rows or paragraphs merge | Check segmentation and reading order separately from recognition language. |
An existing text layer matters. For example, NAPS2's OCR documentation says imported PDF pages that already contain text are left alone. Reimporting a badly OCRed page is therefore not a reliable repair method in that workflow.
If the real problem is a low-resolution, curved, or skewed scan, fix that before interpreting a language-setting comparison. Our broader scanned PDF guide covers that preparation and the later translation stages.
Choose recognition languages, not a translation target
Recognition answers “what characters are on this page?” Translation answers “how should this content read in another language?” Do not ask OCR to silently simplify traditional Chinese, translate an English quotation, or rewrite an unfamiliar identifier.
Make a short inventory:
- Chinese script: simplified, traditional, or both, including headings and notes.
- Latin text: English sentences, author names, references, abbreviations, and model numbers.
- Controlled values: dates, decimal points, units, negative signs, identifiers, and case-sensitive codes.
- Regions: prose, tables, captions, footnotes, or a separate-language appendix.
For example, a traditional Chinese report might contain an English abstract and references. A simplified Chinese chapter might include a table with A-01, 23.5, and °C. Neither should be evaluated by checking only the longest Chinese paragraph.
Tesseract provides separate chi_sim, chi_tra, and eng models in its official model repository. Its command documentation supports combined language selections and notes that language order can affect results. These are configuration possibilities, not guarantees that every additional model helps.
If your document instead contains vertical Japanese columns and furigana, use the Japanese vertical OCR guide. That is a different layout and annotation problem, not just another language checkbox.
Use a workflow that actually accepts PDFs
A desktop route: NAPS2
NAPS2 offers a documented path for making scanned PDFs searchable:
- Import a copy of the file and open its OCR settings.
- Download the recognition languages needed for the document.
- Choose Multiple Languages and select the relevant languages.
- Enable searchable-PDF OCR and save to a new file.
- Reopen that file and compare copied Chinese, English, and numeric text with the visible page.
The multiple-language choice appears after more than one language is downloaded. These steps follow the official NAPS2 guide; we did not perform a NAPS2 hands-on test for this article.
A command-line route: OCRmyPDF
For an image-only simplified Chinese/English PDF, an example based on the official documentation is:
ocrmypdf -l chi_sim+eng --output-type pdf \
--sidecar recognized.txt input.pdf searchable.pdf
Install the required language packs first. Use chi_tra for a traditional-Chinese test instead of assuming the scripts are interchangeable.
The OCRmyPDF cookbook documents the PDF and sidecar-text outputs. Its sidecar is not necessarily the entire document: text on pages that already had text, or pages skipped during OCR, may be absent. Check the output PDF itself. Existing incorrect OCR requires a deliberate redo workflow; do not force rasterization of every page without understanding what it changes.
This is a documentation-based route, not our measured test environment. We did not run OCRmyPDF here.
Plain Tesseract needs rendered pages
Do not use tesseract input.pdf ... as though it were a PDF reader. Tesseract does not accept PDF input, even though it can produce PDF output. Tesseract.js has the same PDF-input distinction: render the pages with a PDF library first, then recognize the images.
That is the path used for our experiment below. It produces text and TSV evidence, not a tested searchable-output PDF.
What happened in ten local OCR calls
We created a three-page image-only PDF containing:
- simplified Chinese prose with English references, identifiers, decimals, and units;
- a corresponding traditional Chinese page;
- a small Chinese-English table with three data rows.
The text and values are self-authored teaching material, not customer files or real measurements. Each prose target contains 124 non-whitespace code points, including 41 Han characters. The table contains 79 non-whitespace code points.

The PDF's source pages had no extractable text. We rendered them using Poppler 26.08.0 at 300 dpi, producing 1600×1000-pixel images. The font size was 48 pixels in Noto Sans CJK SC/TC Regular. All punctuation came from the fonts' ordinary horizontal glyphs.
On September 8, 2026, we ran Tesseract.js 7.0.0 with tesseract.js-core 7.0.0 locally on macOS ARM64. The official tessdata_fast models were pinned to commit 87416418657359cb625c412a48b6e1d6d41c29bd. Every call used OEM 1 and PSM 6, the uniform-text-block setting, with the same page image for each language comparison.
There were four language recipes for each prose page and two for the table. All ten calls completed; no result was discarded and no parameter was tuned after seeing the output. Exact inputs, model hashes, versions and raw results and the reproduction instructions are available.
A setting can fix one field and damage another
On the traditional page, chi_tra retained all 41 Han characters in sequence, but it still made non-Chinese errors. For example, it changed the English label Document ID to Document 1ID and misread the degree symbol.
Adding eng restored Document ID, but part of the temperature-and-mass sentence became Latin-looking fragments:
Expected: 樣本溫度為 23.5 °C,質量為 1.08 kg。
Observed with chi_tra+eng: RA MEA 23.5°C > HBA 1.08 kg。
The numbers survived in that line while the surrounding Chinese did not. Checking only 23.5 and 1.08 would have missed the damage.
The simplified page showed a different trade-off. Adding English restored BK-2026-A07, which the Chinese-only run had returned as BK-2026-AO7. But it also changed 与 to 5 elsewhere. The visually ambiguous identifier O0I1-l remained wrong.
The following diagnostics show why we did not declare a winner:
| Input and language selection | Han-sequence edits | Protected strings found |
|---|---|---|
Either prose page, eng alone | 41 of 41 expected Han characters missing | 9 of 10 |
Simplified page, chi_sim | 1 | 7 of 10 |
| Simplified page, either Chinese/English order | 2 | 8 of 10 |
Traditional page, chi_tra | 0 | 9 of 10 |
| Traditional page, either Chinese/English order | 9 | 9 of 10 |
Table, eng or chi_sim+eng | No text returned | 0 of 9 |
“Han-sequence edits” compares only Chinese ideographs. It does not score English, punctuation, or spacing. “Protected strings found” is only a presence check for the predefined identifiers, numbers, units, and reference tokens; it does not verify their position or relationship. The English-only outputs demonstrate the trap: most protected strings were present, yet none of the Chinese characters were returned.
The full comparison CSV also reports whole-text edit distances. Comparison applies Unicode NFC and removes whitespace; it does not fix punctuation, change case, convert Chinese scripts, or reorder characters. Reversing the language order changed spacing in these prose outputs but not the normalized character sequence. That observation is not a general rule about language order.
An empty table is not a successful extraction

Both table calls returned empty text, despite completing without an OCR execution error. Adding Chinese did not rescue the fixed uniform-block recipe.
We did not test other segmentation modes, cell crops, or a table-recognition engine. The result therefore does not show that Tesseract cannot read tables. It shows that changing recognition language alone did not solve this sample under the settings we used.
For a real table, require the complete relationship Temperature → A-01 → 23.5 → °C, not four tokens found somewhere on the page. If the output is blank or relationships cannot be checked, stop treating it as a trustworthy transcription. Try a layout-aware workflow or transcribe the necessary cells with reference to the image.
What this experiment cannot establish
These are three clean synthetic pages from one font family, reviewed by one writer agent. There was no blinded human review, production-document corpus, or test of blurred scans, handwriting, complex tables, vertical text, or historical characters.
The results are useful counterexamples to an unconditional “add more languages” rule. They are not an engine ranking, a general accuracy rate, or a forecast for your PDF. This was not a BookTranslator test, and the image-only source PDF is not an OCR-completed reading copy.
Use a four-part acceptance check on your own file
Download the blank review sheet. Choose a page that contains the actual difficulty, then add the following checks before processing the whole file:
- Chinese text: compare a complete sentence, including less common characters and the intended simplified/traditional forms. Do not silently normalize a wrong character into the one you expected.
- English and identifiers: inspect author names, references, abbreviations, capitalization, and look-alike characters such as
O/0orI/l/1. An unfamiliar code is not a word to autocorrect. - Numbers and units: compare each value with its sign, decimal point, unit, and label.
0.05and0.50must remain distinct; a recognized23.5without the correct unit is incomplete. - Relationships and completeness: check that each paragraph or table row belongs where expected. Confirm captions, notes, and small secondary-language passages are present, not just the main text.
Record the original text, observed result, page/region, and required action. When a configuration improves one check but worsens another, keep both observations. Do not accept the file on a single confidence score or average character count.
Separate three outcomes: usable as-is for your stated purpose, needs specific corrections, or cannot yet be trusted. A lookup task may need only one verified passage; a complete reading copy requires coverage of the full document, not a clean title page.
Translate only after you know what the source says
If search and copyable original text solve your problem, stop there. OCR has done its job; translation is a separate decision.
If you need to read the complete document in another language, retain the original scan and corrected text as references, then follow the scanned-PDF translation workflow. For an eligible file, BookTranslator's PDF translator can be the next step. Its OCR mode reconstructs translated content rather than promising an exact match to the original page layout; it does not remove the need to check recovered text and table relationships.
After translation, use the PDF translation QA checklist to distinguish a source-recognition error from a translation or layout error. Correcting the wrong stage is how a readable mistake survives into the final file.
Artículos relacionados





