Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

ngx-barcode-scanner

julienboulay13.2kMIT14.0.1TypeScript support: included

Angular components for QuaggaJS barcode reader. It uses the new Quagga2 supported version. Supporting Angular 10+

angular, ngx, quagga, quagga2, quaggajs, zxing, barcode, ean, code128, code39, codabar, i2of5, upc, getusermedia, imageprocessing

readme

ngx-barcode-scanner component

Angular components for QuaggaJS barcode reader. It uses the new Quagga2 supported version. Supporting Angular 10+

npm@latest Dependencies status Downloads/week

GitHub issues GitHub stars GitHub license

Table of contents

Demo

A simple demo is available here

Installation

Install through npm:

npm install --save @ericblade/quagga2 ngx-barcode-scanner

Usage

Module imports

//demo.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";

import { BarcodeScannerLivestreamModule } from "ngx-barcode-scanner";
import { Demo } from "./demo.component";

@NgModule({
  declarations: [Demo],
  imports: [BrowserModule, BarcodeScannerLivestreamModule],
  bootstrap: [Demo],
})
export class DemoModule {}

BarcodeScannerLivestreamComponent

This component creates a barcode scanner.

//demo.component.ts
import { Component, ViewChild, AfterViewInit } from "@angular/core";
import { BarcodeScannerLivestreamComponent } from "ngx-barcode-scanner";

@Component({
  selector: "demo-app",
  template: `
    <barcode-scanner-livestream
      type="code_128"
      (valueChanges)="onValueChanges($event)"
      (started)="(onStarted)"
    ></barcode-scanner-livestream>
    <div [hidden]="!barcodeValue">
      {{ barcodeValue }}
    </div>
  `,
})
export class Demo implements AfterViewInit {
  @ViewChild(BarcodeScannerLivestreamComponent)
  barcodeScanner: BarcodeScannerLivestreamComponent;

  barcodeValue;

  ngAfterViewInit() {
    this.barcodeScanner.start();
  }

  onValueChanges(result) {
    this.barcodeValue = result.codeResult.code;
  }

  onStarted(started) {
    console.log(started);
  }
}

Compatibility

Choose the right version

Angular ngx-barcode-scanner @ericblade/quagga2
10 0.2.0 1.2.6
11 0.2.0 1.2.6
12 0.3.0 1.4.2
13 13.0.0 1.7.7
14 14.0.0 1.7.7

Development

Development server

Run ng serve or npm run start for a dev server, on the example app. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Build

Run npm run build to build the project. The build artifacts will be stored in the dist/ directory.

Known issues

Access to the camera (getUserMedia API) is restricted on iOS when running in a Progressive Web App or in browsers different than Safari. Live streaming will not work in this case.

FAQ

Which types of barcode are supported ?

All barcode types supported by quaggajs

Does ngx-barcode-scanner support scanning QR Codes ?

No, ngx-barcode-scanner is based on quaggajs, and it can not support qr-code.

License

MIT

changelog

Changelog

v13.0.0 (2022-11-19)

Breaking changes

  • Upgrade to Angular 13 and Quagga2 1.7.7

v0.3.0 (2021-10-24)

Breaking changes

  • Add compatibility for Angular 12 and Ivy

v0.2.0 (2020-11-20)

Breaking changes

  • Replace Quagga by Quagga2
    QuaggaConfig is replaced by QuaggaJSConfigObject

v0.1.2 (2020-11-19)

Fix

  • Add missing properties to QuaggaConfig
  • Update README with a project description and fix typo

v0.1.1 (2020-11-18)

Feature

  • Better responsive components:
    • width and height can be set on barcode-scanner-livestream-overlay
    • maxWidth and maxHeight can be set on barcode-scanner-livestream and barcode-scanner-livestream-overlay

v0.1.0 (2020-11-18)

Breaking changes

  • Fix #47 : Components and Modules renamming

Feature

  • Make scanner component responsive and enable setting component width and height