Package org.apache.tika.parser.ocr
Class TesseractOCRConfig
java.lang.Object
org.apache.tika.parser.ocr.TesseractOCRConfig
- All Implemented Interfaces:
Serializable
Configuration for TesseractOCRParser.
This class is not thread safe and must be synchronized externally.
This class will remember all set* field forever,
and on cloneAndUpdate(TesseractOCRConfig)
,
it will update all the fields that have been set on the "update" config.
So, for example, if you want to change language to "fra"
from "eng" and then on another parse,
you want to change depth to 5 on the same update object,
but you expect the language to revert to "eng", you'll be wrong.
Create a new update config for each parse unless you're only changing the
same field(s) with every parse.
- See Also:
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addOtherTesseractConfig
(String key, String value) Add a key-value pair to pass to Tesseract using its -c command line option.cloneAndUpdate
(TesseractOCRConfig updates) int
int
getDepth()
static void
This takes a language string, parses it and then bins individual langs into valid or invalid based on regexes against the language codeslong
long
int
int
boolean
boolean
boolean
boolean
void
setApplyRotation
(boolean applyRotation) Sets whether or not a rotation value should be calculated and passed to ImageMagick.void
setColorspace
(String colorspace) void
setDensity
(int density) void
setDepth
(int depth) void
setEnableImagePreprocessing
(boolean enableImagePreprocessing) Set the value to true if processing is to be enabled.void
void
setLanguage
(String languageString) Set tesseract language dictionary to be used.void
setMaxFileSizeToOcr
(long maxFileSizeToOcr) Set maximum file size to submit file to ocr.void
setMinFileSizeToOcr
(long minFileSizeToOcr) Set minimum file size to submit file to ocr.void
setOutputType
(String outputType) void
setOutputType
(TesseractOCRConfig.OUTPUT_TYPE outputType) Set output type from ocr process.void
setPageSegMode
(String pageSegMode) Set tesseract page segmentation mode.void
setPageSeparator
(String pageSeparator) The page separator to use in plain text output.void
setPreserveInterwordSpacing
(boolean preserveInterwordSpacing) Whether or not to maintain interword spacing.void
setResize
(int resize) void
setSkipOcr
(boolean skipOcr) If you want to turn off OCR at run time for a specific file, set this totrue
void
setTimeoutSeconds
(int timeoutSeconds) Set maximum time (seconds) to wait for the ocring process to terminate.void
setTrustedPageSeparator
(String pageSeparator) Same assetPageSeparator(String)
but does not perform any checks on the string.
-
Constructor Details
-
TesseractOCRConfig
public TesseractOCRConfig()
-
-
Method Details
-
getLangs
This takes a language string, parses it and then bins individual langs into valid or invalid based on regexes against the language codes- Parameters:
language
-validLangs
-invalidLangs
-
-
getLanguage
- See Also:
-
setLanguage
Set tesseract language dictionary to be used. Default is "eng". languages are either:- Nominally an ISO-639-2 code but compound codes are allowed separated by underscore: e.g., chi_tra_vert, aze_cyrl
- A file path in the script directory. The name starts with upper-case letter. Some of them have underscores and other upper-case letters: e.g., script/Arabic, script/HanS_vert, script/Japanese_vert, script/Canadian_Aboriginal
-
getPageSegMode
- See Also:
-
setPageSegMode
Set tesseract page segmentation mode. Default is 1 = Automatic page segmentation with OSD (Orientation and Script Detection) -
getPageSeparator
- See Also:
-
setPageSeparator
The page separator to use in plain text output. This corresponds to Tesseract's page_separator config option. The default here is the empty string (i.e. no page separators). Note that this is also the default in Tesseract 3.x, but in Tesseract 4.0 the default is to use the form feed control character. We are overriding Tesseract 4.0's default here.- Parameters:
pageSeparator
-
-
setTrustedPageSeparator
Same assetPageSeparator(String)
but does not perform any checks on the string.- Parameters:
pageSeparator
-
-
isPreserveInterwordSpacing
public boolean isPreserveInterwordSpacing()- Returns:
- whether or not to maintain interword spacing.
-
setPreserveInterwordSpacing
public void setPreserveInterwordSpacing(boolean preserveInterwordSpacing) Whether or not to maintain interword spacing. Default isfalse
.- Parameters:
preserveInterwordSpacing
-
-
getMinFileSizeToOcr
public long getMinFileSizeToOcr() -
setMinFileSizeToOcr
public void setMinFileSizeToOcr(long minFileSizeToOcr) Set minimum file size to submit file to ocr. Default is 0. -
getMaxFileSizeToOcr
public long getMaxFileSizeToOcr() -
setMaxFileSizeToOcr
public void setMaxFileSizeToOcr(long maxFileSizeToOcr) Set maximum file size to submit file to ocr. Default is Integer.MAX_VALUE. -
getTimeoutSeconds
public int getTimeoutSeconds()- Returns:
- timeout value for Tesseract
- See Also:
-
setTimeoutSeconds
public void setTimeoutSeconds(int timeoutSeconds) Set maximum time (seconds) to wait for the ocring process to terminate. Default value is 120s. -
getOutputType
- See Also:
-
setOutputType
Set output type from ocr process. Default is "txt", but can be "hocr". Default value isTesseractOCRConfig.OUTPUT_TYPE.TXT
. -
setOutputType
-
isEnableImagePreprocessing
public boolean isEnableImagePreprocessing()- Returns:
- image processing is enabled or not
- See Also:
-
setEnableImagePreprocessing
public void setEnableImagePreprocessing(boolean enableImagePreprocessing) Set the value to true if processing is to be enabled. Default value is false. -
getDensity
public int getDensity()- Returns:
- the density
-
setDensity
public void setDensity(int density) - Parameters:
density
- the density to set. Valid range of values is 150-1200. Default value is 300.
-
getDepth
public int getDepth()- Returns:
- the depth
-
setDepth
public void setDepth(int depth) - Parameters:
depth
- the depth to set. Valid values are 2, 4, 8, 16, 32, 64, 256, 4096. Default value is 4.
-
getColorspace
- Returns:
- the colorspace
-
setColorspace
- Parameters:
colorspace
- the colorspace to set Deafult value is gray.
-
getFilter
- Returns:
- the filter
-
setFilter
- Parameters:
filter
- the filter to set. Valid values are point, hermite, cubic, box, gaussian, catrom, triangle, quadratic and mitchell. Default value is triangle.
-
isSkipOcr
public boolean isSkipOcr() -
setSkipOcr
public void setSkipOcr(boolean skipOcr) If you want to turn off OCR at run time for a specific file, set this totrue
- Parameters:
skipOcr
-
-
getResize
public int getResize()- Returns:
- the resize
-
setResize
public void setResize(int resize) - Parameters:
resize
- the resize to set. Valid range of values is 100-900. Default value is 900.
-
isApplyRotation
public boolean isApplyRotation()- Returns:
- Whether or not a rotation value should be calculated and passed to ImageMagick before performing OCR.
-
setApplyRotation
public void setApplyRotation(boolean applyRotation) Sets whether or not a rotation value should be calculated and passed to ImageMagick.- Parameters:
applyRotation
- to calculate and apply rotation, false to skip. Default is false
-
getOtherTesseractConfig
- See Also:
-
addOtherTesseractConfig
Add a key-value pair to pass to Tesseract using its -c command line option. To see the possible options, run tesseract --print-parameters.You may also add these parameters in TesseractOCRConfig.properties; any key-value pair in the properties file where the key contains an underscore is passed directly to Tesseract.
- Parameters:
key
-value
-
-
cloneAndUpdate
- Throws:
TikaException
-