Class TesseractOCRParser
- All Implemented Interfaces:
Serializable,Initializable,Parser
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);
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckInitialization(InitializableProblemHandler problemHandler) intintgetDepth()static StringgetLangs()longlongintgetSupportedTypes(ParseContext context) Returns the set of media types supported by this parser when used with the given parse context.static Stringintbooleanprotected booleanvoidinitialize(Map<String, Param> params) booleanbooleanbooleanbooleanbooleanbooleanvoidparse(Image image, ContentHandler handler, Metadata metadata, ParseContext context) voidparse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext parseContext) Parses a document stream into a sequence of XHTML SAX events.voidsetApplyRotation(boolean applyRotation) voidsetColorspace(String colorspace) voidsetDensity(int density) voidsetDepth(int depth) voidsetEnableImagePreprocessing(boolean enableImagePreprocessing) voidvoidsetImageMagickPath(String imageMagickPath) Set the path to the ImageMagick executable directory, needed if it is not on system path.voidsetInlineContent(boolean inlineContent) voidsetLanguage(String language) voidsetMaxFileSizeToOcr(long maxFileSizeToOcr) voidsetMinFileSizeToOcr(long minFileSizeToOcr) voidsetOtherTesseractSettings(List<String> settings) voidsetOutputType(String outputType) voidsetPageSegMode(String pageSegMode) voidsetPreloadLangs(boolean preloadLangs) If set totrueand if tesseract is found, this will load the langs that result from --list-langs.voidsetPreserveInterwordSpacing(boolean preserveInterwordSpacing) voidsetResize(int resize) voidsetSkipOCR(boolean skipOCR) voidsetTessdataPath(String tessdataPath) Set the path to the 'tessdata' folder, which contains language files and config files.voidsetTesseractPath(String tesseractPath) Set the path to the Tesseract executable's directory, needed if it is not on system path.voidsetTimeout(int timeout) Set default timeout in seconds.protected voidwarn()Methods inherited from class org.apache.tika.parser.AbstractExternalProcessParser
register, release
-
Field Details
-
TESS_META
- See Also:
-
IMAGE_ROTATION
-
IMAGE_MAGICK
-
PSM0_PAGE_NUMBER
-
PSM0_ORIENTATION
-
PSM0_ROTATE
-
PSM0_ORIENTATION_CONFIDENCE
-
PSM0_SCRIPT
-
PSM0_SCRIPT_CONFIDENCE
-
-
Constructor Details
-
TesseractOCRParser
public TesseractOCRParser()
-
-
Method Details
-
getImageMagickProg
-
getTesseractProg
-
getSupportedTypes
Description copied from interface:ParserReturns the set of media types supported by this parser when used with the given parse context.- Specified by:
getSupportedTypesin interfaceParser- Parameters:
context- parse context- Returns:
- immutable set of media types
-
hasTesseract
- Throws:
TikaConfigException
-
parse
public void parse(Image image, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException - Throws:
IOExceptionSAXExceptionTikaException
-
parse
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext parseContext) throws IOException, SAXException, TikaException Description copied from interface:ParserParses a document stream into a sequence of XHTML SAX events. Fills in related document metadata in the given metadata object.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.
- Specified by:
parsein interfaceParser- Parameters:
stream- the document stream (input)handler- handler for the XHTML SAX events (output)metadata- document metadata (input and output)parseContext- parse context- Throws:
IOException- if the document stream could not be readSAXException- if the SAX events could not be processedTikaException- if the document could not be parsed
-
initialize
- Specified by:
initializein interfaceInitializable- Parameters:
params- params to use for initialization- Throws:
TikaConfigException
-
checkInitialization
public void checkInitialization(InitializableProblemHandler problemHandler) throws TikaConfigException - Specified by:
checkInitializationin interfaceInitializable- Parameters:
problemHandler- if there is a problem and no custom initializableProblemHandler has been configured via Initializable parameters, this is called to respond.- Throws:
TikaConfigException
-
getLangs
-
hasWarned
protected boolean hasWarned() -
warn
protected void warn() -
getTesseractPath
-
setTesseractPath
Set the path to the Tesseract executable's directory, needed if it is not on system path.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). -
getTessdataPath
-
setTessdataPath
Set the path to the 'tessdata' folder, which contains language files and config files. In some cases (such as on Windows), this folder is found in the Tesseract installation, but in other cases (such as when Tesseract is built from source), it may be located elsewhere. Make sure to include the 'tessdata' folder in this path: '/blah/de/blah/tessdata' -
getImageMagickPath
-
setImageMagickPath
Set the path to the ImageMagick executable directory, needed if it is not on system path.- Parameters:
imageMagickPath- to ImageMagick executable directory.
-
setOtherTesseractSettings
- Throws:
TikaConfigException
-
getOtherTesseractSettings
-
setSkipOCR
-
isSkipOCR
public boolean isSkipOCR() -
setLanguage
-
getLanguage
-
setPageSegMode
-
getPageSegMode
-
setMaxFileSizeToOcr
-
getMaxFileSizeToOcr
public long getMaxFileSizeToOcr() -
setMinFileSizeToOcr
-
getMinFileSizeToOcr
public long getMinFileSizeToOcr() -
setTimeout
Set default timeout in seconds. This can be overridden per parse withTikaTaskTimeoutsent in via theParseContextat parse time.- Parameters:
timeout-
-
getTimeout
public int getTimeout() -
setOutputType
-
getOutputType
-
setPreserveInterwordSpacing
-
isPreserveInterwordSpacing
public boolean isPreserveInterwordSpacing() -
setEnableImagePreprocessing
-
isEnableImagePreprocessing
public boolean isEnableImagePreprocessing() -
setDensity
-
getDensity
public int getDensity() -
setDepth
-
getDepth
public int getDepth() -
setColorspace
-
getColorspace
-
setFilter
-
getFilter
-
setResize
-
getResize
public int getResize() -
setApplyRotation
-
isApplyRotation
public boolean isApplyRotation() -
setInlineContent
-
isInlineContent
public boolean isInlineContent() -
setPreloadLangs
If set totrueand 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.- Parameters:
preloadLangs-
-
isPreloadLangs
public boolean isPreloadLangs() -
getDefaultConfig
-