-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
- The image may be too low-resolution or low-contrast. See Performance.
- Wrong PSM: a full-page mode on a single word (or vice-versa) can yield nothing.
Try
pageSegMode = 6or7. - Confirm the language is right for the text (
getVersion()/getAvailableLanguages()).
- Upscale small text (glyphs ≥ 20 px), increase contrast, deskew.
- For numbers/codes, set
whitelistChars. - Try
tessdata_bestmodels (Pro) for hard inputs.
The requested language's *.traineddata isn't on disk. English is bundled; for
others, download the file and call addLanguage(context, code, file) before
initialize. See Languages.
Ensure your app includes the arm64-v8a ABI. The Free AAR is arm64-v8a only —
it will not load on an x86_64 emulator. Use a physical arm64 device, or
Pro which adds x86_64.
Yes. Everything is on-device. English works with zero network. Additional languages just need their traineddata present (bundled or added once).
Not directly — render the PDF page to a Bitmap (e.g. PdfRenderer) and pass that
to recognize.
A single TesseractOCR instance is not thread-safe. Serialise calls, or use one
instance per worker thread.
initialize extracts the bundled traineddata to storage and loads the LSTM model
into memory. Subsequent recognize calls are much faster. Keep the instance alive
and reuse it.
The library is Apache 2.0 — fine for commercial apps. Tesseract (Apache 2.0), Leptonica (BSD-2-Clause), and the bundled English model (Apache 2.0) permit redistribution.
12 bundled languages, tessdata_best models, OpenMP multi-threading, batch/advanced
API, and x86_64 support. See Pro Integration.