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)
$ npm install react-native-tesseract-ocr --save
$ react-native link react-native-tesseract-ocr
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'
- 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
)<
- 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
.
import RNTesseractOcr from 'react-native-tesseract-ocr';
/**
* @param {string} imgPath - The path of the image.
* @param {string} lang - The language you want to process.
*/
RNTesseractOcr.startOcr(imgPath, lang)
.then((result) => {
this.setState({ ocrResult: result });
console.log("OCR Result: ", result);
})
.catch((err) => {
console.log("OCR Error: ", err);
})
.done();
- 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
Try the included TesseractOcrSample:
git clone [email protected]:jonathanpalma/react-native-tesseract-ocr.git
cd react-native-tesseract-ocr/tesseractOcrSample/
npm install
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'
- Add iOS support
- Optimize ocr for large images
Contributions are welcome 🙌
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