public class TesseractOCRParser extends AbstractExternalProcessParser implements Initializable
TesseractOCRConfig
object and pass it through a
ParseContext. Tesseract-ocr must be installed and on system path or the path
to its root folder must be provided:
TesseractOCRConfig config = new TesseractOCRConfig();
//Needed if tesseract is not on system path
config.setTesseractPath(tesseractFolder);
parseContext.set(TesseractOCRConfig.class, config);
Modifier and Type | Field and Description |
---|---|
static Property |
IMAGE_MAGICK |
static Property |
IMAGE_ROTATION |
static String |
TESS_META |
Constructor and Description |
---|
TesseractOCRParser() |
Modifier and Type | Method and Description |
---|---|
void |
checkInitialization(InitializableProblemHandler problemHandler) |
TesseractOCRConfig |
getDefaultConfig() |
String |
getImageMagickPath() |
static String |
getImageMagickProg() |
Set<String> |
getLangs() |
Set<MediaType> |
getSupportedTypes(ParseContext context)
Returns the set of media types supported by this parser when used
with the given parse context.
|
String |
getTessdataPath() |
String |
getTesseractPath() |
static String |
getTesseractProg() |
boolean |
hasTesseract() |
protected boolean |
hasWarned() |
void |
initialize(Map<String,Param> params) |
void |
parse(Image image,
ContentHandler handler,
Metadata metadata,
ParseContext context) |
void |
parse(InputStream stream,
ContentHandler handler,
Metadata metadata,
ParseContext parseContext)
Parses a document stream into a sequence of XHTML SAX events.
|
void |
setApplyRotation(boolean applyRotation) |
void |
setColorspace(String colorspace) |
void |
setDensity(int density) |
void |
setDepth(int depth) |
void |
setEnableImagePreprocessing(boolean enableImagePreprocessing) |
void |
setFilter(String filter) |
void |
setImageMagickPath(String imageMagickPath)
Set the path to the ImageMagick executable directory, needed if it is not on system path.
|
void |
setLanguage(String language) |
void |
setMaxFileSizeToOcr(long maxFileSizeToOcr) |
void |
setMinFileSizeToOcr(long minFileSizeToOcr) |
void |
setOtherTesseractSettings(List<String> settings) |
void |
setOutputType(String outputType) |
void |
setPageSegMode(String pageSegMode) |
void |
setPreloadLangs(boolean preloadLangs)
If set to
true and if tesseract is found, this will load the
langs that result from --list-langs. |
void |
setPreserveInterwordSpacing(boolean preserveInterwordSpacing) |
void |
setResize(int resize) |
void |
setSkipOCR(boolean skipOCR) |
void |
setTessdataPath(String tessdataPath)
Set the path to the 'tessdata' folder, which contains language files and config files.
|
void |
setTesseractPath(String tesseractPath)
Set the path to the Tesseract executable's directory, needed if it is not on system path.
|
void |
setTimeout(int timeout) |
protected void |
warn() |
register, release
parse
public static final String TESS_META
public static final Property IMAGE_ROTATION
public static final Property IMAGE_MAGICK
public static String getImageMagickProg()
public static String getTesseractProg()
public Set<MediaType> getSupportedTypes(ParseContext context)
Parser
getSupportedTypes
in interface Parser
context
- parse contextpublic boolean hasTesseract() throws TikaConfigException
TikaConfigException
public void parse(Image image, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException
IOException
SAXException
TikaException
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext parseContext) throws IOException, SAXException, TikaException
Parser
The given document stream is consumed but not closed by this method. The responsibility to close the stream remains on the caller.
Information about the parsing context can be passed in the context parameter. See the parser implementations for the kinds of context information they expect.
parse
in interface Parser
stream
- the document stream (input)handler
- handler for the XHTML SAX events (output)metadata
- document metadata (input and output)parseContext
- parse contextIOException
- if the document stream could not be readSAXException
- if the SAX events could not be processedTikaException
- if the document could not be parsedpublic void initialize(Map<String,Param> params) throws TikaConfigException
initialize
in interface Initializable
params
- params to use for initializationTikaConfigException
public void checkInitialization(InitializableProblemHandler problemHandler) throws TikaConfigException
checkInitialization
in interface Initializable
problemHandler
- if there is a problem and no
custom initializableProblemHandler has been configured
via Initializable parameters,
this is called to respond.TikaConfigException
protected boolean hasWarned()
protected void warn()
public String getTesseractPath()
@Field public void setTesseractPath(String tesseractPath)
Note that if you set this value, it is highly recommended that you also
set the path to (and including) the 'tessdata' folder using setTessdataPath(java.lang.String)
.
public String getTessdataPath()
@Field public void setTessdataPath(String tessdataPath)
public String getImageMagickPath()
@Field public void setImageMagickPath(String imageMagickPath)
imageMagickPath
- to ImageMagick executable directory.@Field public void setOtherTesseractSettings(List<String> settings) throws TikaConfigException
TikaConfigException
@Field public void setSkipOCR(boolean skipOCR)
@Field public void setMaxFileSizeToOcr(long maxFileSizeToOcr)
@Field public void setMinFileSizeToOcr(long minFileSizeToOcr)
@Field public void setTimeout(int timeout)
@Field public void setPreserveInterwordSpacing(boolean preserveInterwordSpacing)
@Field public void setEnableImagePreprocessing(boolean enableImagePreprocessing)
@Field public void setDensity(int density)
@Field public void setDepth(int depth)
@Field public void setResize(int resize)
@Field public void setApplyRotation(boolean applyRotation)
@Field public void setPreloadLangs(boolean preloadLangs)
true
and if tesseract is found, this will load the
langs that result from --list-langs. At parse time, the
parser will verify that tesseract has the requested lang
available.
If set to false
(the default) and tesseract is found, if a user
requests a language that tesseract does not have data for,
a TikaException will be thrown with tesseract's native exception
message, which is a bit less readable.
preloadLangs
- public TesseractOCRConfig getDefaultConfig()
Copyright © 2007–2021 The Apache Software Foundation. All rights reserved.