Skip to content

RahimKh/react-native-tesseract-ocr

 
 

Repository files navigation

react-native-tesseract-ocr npm version

react-native-tesseract-ocr is a react-native wrapper for Tesseract OCR using base on

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
  • 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

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-tesseract-ocr and add RNTesseractOcr.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNTesseractOcr.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. 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 the getPackages() method
  1. 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')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-tesseract-ocr')
    
  3. 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 [email protected]:jonathanpalma/react-native-tesseract-ocr.git
  • cd react-native-tesseract-ocr/tesseractOcrSample/
  • npm install or yarn

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

About

Tesseract OCR wrapper for React Native

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 96.1%
  • Objective-C 2.8%
  • JavaScript 1.1%