Package org.apache.tika.parser.ocr
Class TesseractOCRParser
- java.lang.Object
-
- org.apache.tika.parser.AbstractParser
-
- org.apache.tika.parser.ocr.TesseractOCRParser
-
- All Implemented Interfaces:
Serializable
,Initializable
,Parser
public class TesseractOCRParser extends AbstractParser implements Initializable
TesseractOCRParser powered by tesseract-ocr engine. To enable this parser, create aTesseractOCRConfig
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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description TesseractOCRParser()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
checkInitialization(InitializableProblemHandler problemHandler)
TesseractOCRConfig
getDefaultConfig()
Set<MediaType>
getSupportedTypes(ParseContext context)
Returns the set of media types supported by this parser when used with the given parse context.boolean
hasTesseract(TesseractOCRConfig config)
protected boolean
hasWarned()
void
initialize(Map<String,Param> params)
no-opvoid
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
parseInline(InputStream stream, XHTMLContentHandler xhtml, TesseractOCRConfig config)
void
parseInline(InputStream stream, XHTMLContentHandler xhtml, ParseContext parseContext, TesseractOCRConfig config)
Use this to parse content without starting a new document.void
setApplyRotation(boolean applyRotation)
void
setColorspace(String colorspace)
void
setDensity(int density)
void
setDepth(int depth)
void
setEnableImageProcessing(int enableImageProcessing)
void
setFilter(String filter)
void
setImageMagickPath(String imageMagickPath)
void
setLanguage(String language)
void
setMaxFileSizeToOcr(long maxFileSizeToOcr)
void
setMinFileSizeToOcr(long minFileSizeToOcr)
void
setOutputType(String outputType)
void
setPageSegMode(String pageSegMode)
void
setPreserveInterwordSpacing(boolean preserveInterwordSpacing)
void
setResize(int resize)
void
setTessdataPath(String tessdataPath)
void
setTesseractPath(String tesseractPath)
void
setTimeout(int timeout)
protected void
warn()
-
Methods inherited from class org.apache.tika.parser.AbstractParser
parse
-
-
-
-
Method Detail
-
getSupportedTypes
public Set<MediaType> getSupportedTypes(ParseContext context)
Description copied from interface:Parser
Returns the set of media types supported by this parser when used with the given parse context.- Specified by:
getSupportedTypes
in interfaceParser
- Parameters:
context
- parse context- Returns:
- immutable set of media types
-
hasTesseract
public boolean hasTesseract(TesseractOCRConfig config)
-
parse
public void parse(Image image, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException
- Throws:
IOException
SAXException
TikaException
-
parse
public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext parseContext) throws IOException, SAXException, TikaException
Description copied from interface:Parser
Parses 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:
parse
in 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
-
parseInline
public void parseInline(InputStream stream, XHTMLContentHandler xhtml, TesseractOCRConfig config) throws IOException, SAXException, TikaException
Use this to parse content without starting a new document. This appends SAX events to xhtml without re-adding the metadata, body start, etc.- Parameters:
stream
- inputstreamxhtml
- handlerconfig
- TesseractOCRConfig to use for this parse- Throws:
IOException
SAXException
TikaException
-
parseInline
public void parseInline(InputStream stream, XHTMLContentHandler xhtml, ParseContext parseContext, TesseractOCRConfig config) throws IOException, SAXException, TikaException
Use this to parse content without starting a new document. This appends SAX events to xhtml without re-adding the metadata, body start, etc.- Parameters:
stream
- inputstreamxhtml
- handlerconfig
- TesseractOCRConfig to use for this parse- Throws:
IOException
SAXException
TikaException
-
initialize
public void initialize(Map<String,Param> params) throws TikaConfigException
no-op- Specified by:
initialize
in interfaceInitializable
- Parameters:
params
- params to use for initialization- Throws:
TikaConfigException
-
checkInitialization
public void checkInitialization(InitializableProblemHandler problemHandler) throws TikaConfigException
- Specified by:
checkInitialization
in 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
-
hasWarned
protected boolean hasWarned()
-
warn
protected void warn()
-
setMaxFileSizeToOcr
@Field public void setMaxFileSizeToOcr(long maxFileSizeToOcr)
-
setMinFileSizeToOcr
@Field public void setMinFileSizeToOcr(long minFileSizeToOcr)
-
setTimeout
@Field public void setTimeout(int timeout)
-
setPreserveInterwordSpacing
@Field public void setPreserveInterwordSpacing(boolean preserveInterwordSpacing)
-
setEnableImageProcessing
@Field public void setEnableImageProcessing(int enableImageProcessing)
-
setDensity
@Field public void setDensity(int density)
-
setDepth
@Field public void setDepth(int depth)
-
setResize
@Field public void setResize(int resize)
-
setApplyRotation
@Field public void setApplyRotation(boolean applyRotation)
-
getDefaultConfig
public TesseractOCRConfig getDefaultConfig()
-
-