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
or
$ yarn add react-native-tesseract-ocr
$ react-native link react-native-tesseract-ocr
Don't forget to ...
- Download Trained data v3.04 Trained data files
- iOS: Drag and drop the
tessdata
into your project at root in xCode. SelectCopy items if needed
andCopy folder reference
- Android: It must be extracted in
android/app/src/main/assets/tessdata
.
- iOS: Drag and drop the
- 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' pod 'GPUImage', '0.1.7'
- Add
$(SRCROOT)/../../../ios/Pods
withrecursive
toHeader Search Paths
of theRNTesseractOcr
project by selectRNTesseractOcr.xcodeproj
fromProject Navigator
then selectBuild Settings
tab, search forHeader Search Paths
(iOS only)
- 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/[...]/MainApplication.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')
import {Platform} from 'react-native';
import RNTesseractOcr from 'react-native-tesseract-ocr';
const tessOptions = {
whitelist: null,
blacklist: '1234567890\'!"#$%&/()={}[]+*-_:;<>'
};
const isIOS = Platform.OS === 'ios';
const langName = 'LANG_ENGLISH';
const lang = isIOS ? RNTesseractOcr[langName] : langName;
/**
* @param {string} imgPath - The path of the image.
* @param {string} lang - The language you want to process.
* @param {object} tessOptions - Tesseract options.
*/
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
- 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
- LANG_CUSTOM
Locate your own trained data file as custom.traineddata
into android/app/src/main/assets/tessdata
.
Try the included TesseractOcrSample:
git clone [email protected]: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'
Check the project boards
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