react-native-tesseract-ocr
react-native-tesseract-ocr is a react-native wrapper for Tesseract OCR using base on
- tess-two for Android
- Tesseract-OCR-iOS for iOS (Not implemented yet)
Getting started
$ npm install react-native-tesseract-ocr --save
or
$ yarn add react-native-tesseract-ocr
Mostly automatic installation
$ react-native link react-native-tesseract-ocr
Don't forget to ...
- add v3.04 trained data files to the appropriate folder
- *add on android/build.gradle
... implementation 'com.android.support:multidex:1.1.0' // use latest version ...
- install CocoaPods in your react-native project and add the following line to your Podfile then run
pod install
(iOS only)pod 'TesseractOCRiOS', '4.0.0'
Manual installation
iOS
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜react-native-tesseract-ocr
and addRNTesseractOcr.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNTesseractOcr.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
Android
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.reactlibrary.RNTesseractOcrPackage;
to the imports at the top of the file - Add
new RNTesseractOcrPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-tesseract-ocr' project(':react-native-tesseract-ocr').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-tesseract-ocr/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-tesseract-ocr')
- v3.04 Trained data files for a language must be
extracted in
android/app/src/main/assets/tessdata
.
Usage
import RNTesseractOcr from 'react-native-tesseract-ocr';
/**
* @param {string} imgPath - The path of the image.
* @param {string} lang - The language you want to process.
* @param {object} tessOptions - Tesseract options.
*/
const tessOptions = {
whitelist: null,
blacklist: '1234567890\'!"#$%&/()={}[]+*-_:;<>'
};
RNTesseractOcr.recognize(imgPath, lang, tessOptions)
.then((result) => {
this.setState({ ocrResult: result });
console.log("OCR Result: ", result);
})
.catch((err) => {
console.log("OCR Error: ", err);
})
.done();
NOTE: The method startOcr is deprecated. Instead, use recognize
Supported languages
- LANG_AFRIKAANS
- LANG_AMHARIC
- LANG_ARABIC
- LANG_ASSAMESE
- LANG_AZERBAIJANI
- LANG_BELARUSIAN
- LANG_BOSNIAN
- LANG_BULGARIAN
- LANG_CHINESE_SIMPLIFIED
- LANG_CHINESE_TRADITIONAL
- LANG_CROATIAN
- LANG_DANISH
- LANG_ENGLISH
- LANG_ESTONIAN
- LANG_FRENCH
- LANG_GALICIAN
- LANG_GERMAN
- LANG_HEBREW
- LANG_HUNGARIAN
- LANG_ICELANDIC
- LANG_INDONESIAN
- LANG_IRISH
- LANG_ITALIAN
- LANG_JAPANESE
- LANG_KOREAN
- LANG_LATIN
- LANG_LITHUANIAN
- LANG_NEPALI
- LANG_NORWEGIAN
- LANG_PERSIAN
- LANG_POLISH
- LANG_PORTUGUESE
- LANG_RUSSIAN
- LANG_SERBIAN
- LANG_SLOVAK
- LANG_SPANISH
- LANG_SWEDISH
- LANG_TURKISH
- LANG_UKRAINIAN
- LANG_VIETNAMESE
If you want to use your own trained data file
- LANG_CUSTOM
Locate your own trained data file as custom.traineddata
into android/app/src/main/assets/tessdata
.
Example
Try the included TesseractOcrSample:
git clone git@github.com:jonathanpalma/react-native-tesseract-ocr.git
cd react-native-tesseract-ocr/tesseractOcrSample/
npm install
oryarn
NOTE: Don't forget to ...
- add v3.04 trained data files to the appropriate folder
- install CocoaPods in your react-native project and add the following line to your Podfile then run
pod install
(iOS only)pod 'TesseractOCRiOS', '4.0.0'
TODOS
Check the project boards
Contribution
Contributions are welcome
License
This repository is distributed under MIT license
- Tesseract OCR - maintained by Google, is distributed under Apache 2.0 license
- tess-two is distributed under Apache 2.0 license
- Tesseract-OCR-iOS is distributed under MIT license