[
https://issues.apache.org/jira/browse/TIKA-3298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17283978#comment-17283978
]
Peter Kronenberg commented on TIKA-3298:
----------------------------------------
[~tallison] This code is assuming that _config.getLanguage()_ contains a single
language but in fact, can contain multiple languages separated by a plus sign.
It needs to do something similar to what's being done in
_TesseractOCRConfig.setLanguage()_. In fact, I think that would be a better
place for this check, rather than in _TesseractOCRParser.doOCR()_. It will
find the error much sooner and will not cause such a deep stack trace to bubble
up. The IllegalArgumentException ends up getting wrapped by a generic
RuntimeException from CompositeParser.parse.
Also, for consistency, I think there needs to be a getPreloadLangs() method
> Add a "preloadLangs" parameter to TesseractOCRParser
> ----------------------------------------------------
>
> Key: TIKA-3298
> URL: https://issues.apache.org/jira/browse/TIKA-3298
> Project: Tika
> Issue Type: Task
> Reporter: Tim Allison
> Priority: Minor
> Fix For: 2.0.0
>
> Attachments: image-2021-02-10-18-59-47-793.png,
> image-2021-02-10-19-00-10-691.png, image-2021-02-11-08-56-38-712.png
>
>
> [~peterkronenberg] on the user/dev lists and on TIKA-3297 and TIKA-3296 has
> observed that the tesseract error message for "lang data doesn't exist" is
> not extremely clear. We could add a "preloadLangs" option to
> TesseractOCRParser (default would be {{false}}). If set to true, the parser
> (upon initialization) if it finds tesseract, will call {{tesseract
> --list-langs}} and then store those langs. At parse time, if the langs set
> has anything in it, the TesseractOCRParser will check that set against the
> user-requested language and throw a clearer exception to the user that the
> language data doesn't exist for the requested language.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)