Skip to content

surialabs/react-native-tesseract-ocr

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

  • Download Trained data v3.04 Trained data files
    • iOS: Drag and drop the tessdata into your project at root in xCode. Select Copy items if needed and Copy folder reference
    • Android: It must be extracted in android/app/src/main/assets/tessdata.
  • 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 with recursive to Header Search Paths of the RNTesseractOcr project by select RNTesseractOcr.xcodeproj from Project Navigator then select Build Settings tab, search for Header Search Paths (iOS only)

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/[...]/MainApplication.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')
    

Usage

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

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 42.1%
  • Objective-C 36.9%
  • JavaScript 15.0%
  • Python 6.0%