# code-128-encoder

> an optimizing encoder for your commandline, node.js and your browser

Latest version **3.1.1** (published 2019-09-03) · ISC license · 0 weekly downloads

## Install

```sh
npm install code-128-encoder
pnpm add code-128-encoder
yarn add code-128-encoder
bun add code-128-encoder
```

Provides the command `encode128`.

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.1 |
| Published | 2019-09-03 |
| First published | 2016-09-04 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 52.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 31 |
| Author | Holger Will |
| Maintainers | holgerwill |
| Keywords | code 128, encoder, barcode |

## Links

- npm: https://www.npmjs.com/package/code-128-encoder
- Repository: https://github.com/Holger-Will/code-128-encoder
- Homepage: https://github.com/Holger-Will/code-128-encoder#readme
- Issues: https://github.com/Holger-Will/code-128-encoder/issues
- npm.io page: https://npm.io/package/code-128-encoder

## Alternatives

- [flatbuffers](https://npm.io/package/flatbuffers.md) — 6.0M weekly downloads
- [jwt-simple](https://npm.io/package/jwt-simple.md) — 259.5K weekly downloads
- [@exodus/patch-broken-hermes-typed-arrays](https://npm.io/package/@exodus/patch-broken-hermes-typed-arrays.md) — 28.5K weekly downloads
- [@native-to-anchor/buffer-layout](https://npm.io/package/@native-to-anchor/buffer-layout.md) — 12.2K weekly downloads
- [binary-parser-encoder](https://npm.io/package/binary-parser-encoder.md) — 5.3K weekly downloads

## Recent versions

- 3.1.1 (latest) — 2019-09-03
- 3.1.0 — 2019-09-03
- 3.0.1 — 2018-11-23
- 3.0.0 — 2018-11-23
- 2.3.1 — 2018-06-27
- 2.3.0 — 2016-09-25
- 2.2.0 — 2016-09-25
- 2.1.0 — 2016-09-23
- 2.0.1 — 2016-09-19
- 2.0.0 — 2016-09-04
- 1.2.0 — 2016-09-04
- 1.1.0 — 2016-09-04
- 1.0.0 — 2016-09-04

## README

## code-128-encoder

an optimizing code-128 encoder for node.js, the commandline, and your browser.

[live example](examples/html/encoder.html)

**this is not a renderer!**

this is a specialized encoder, which you can use to write your own renderer see the [examples](#examples)

## install the command line interface

    npm install -g code-128-encoder

## install node module

    npm install --save code-128-encoder

## install for browser usage

    bower install code-128-encoder

## Examples

### use the cli

    encode128 yourText

outputs the encoded version of your input as an ascii string: `ÑyourText,Ó`

    encode128 -o bars yourText

outputs the encoded version of your input as a series of 0s and 1s where 1 represents a bar and 0 represents a space:  `110100100001001101110010001111010101100100001100011101011`

    encode128 -o weights yourText

outputs the encoded version of your input as a series of weights. each number corespons to a width alternating between bars and spaces: `2112141221321341111122142331112`

to see more options use:

    encode128 -h

you can pipe data from other commands using `encode128 -`.

    echo "Test" | encode128 -o weights -

### use in your Browser

after installing the encoder with bower you can use it like this:

    <script src="bower_components/code-128-encoder/code-128-encoder.min.js"></script>
    <script>
        var encoder = new Code128Generator()
        console.log(encoder.encode(text))
    </script>

you can use the varoius options to write your own renderer. For your convenience, the bower package comes with a code 128 font which you can use to display the code.

    <style>
      @font-face { font-family: 'code128'; src: url('bower_components/code-128-encoder/fonts/code128_XL.ttf'); }
      .barcode { font-family: code128; font-size:50px; margin-top:10px}
    </style>
    <script>
        var encoder = new Code128Generator()
        document.querySelector(".barcode").innerHTML=encoder.encode(text)
    </script>

###  use in your node.js app

    var Encoder = require("code-128-encoder")
    var encoder= new Encoder()
    console.log(encoder.encode("Test"))

prints: `ÑTestWÓ`

you can pass an options parameter to specify the output.

    encoder.encode("Text",{output:"ascii",mapping:0})

the output parameter can be one of:

| name | example | description |
| --- | --- | --- |
| ascii | ÑTestWÓ | the ascii characters of the encoded string |
| bars | 11010010000110111000101011001... | a 1 represents a bar a 0 represents a space |
| weights | 2112142133111122141142121241123113212331112 | each number represents a width alternating between bars and spaces |
| codes | [ 104, 52, 69, 83, 84, 55, 106 ] | an array of code numbers as per the code 128 spec |
| array | [ 209, 84, 101, 115, 116, 87, 211 ] | the ascii code points of the encoded string |

the mapping parameter changes the ascci character mapping and can be one of:

| name | description |
| --- | --- |
| 0 | most common mapping (compatible with google fonts) |
| 1 | barcodesoft mapping|
| 2 | mapping used by my old fonds (as due to a wrong/uncommom mapping in wikipedia) |


### Examples Folder

you can use this to write your own renderer.
in the examples Folder, there are a few example renderer.

the html folder holds examples for rendering barcodes client side in the browser using a base128 font, canvas or just divs. for the html examples to work, go to the examples/html folder, and do `bower install`

in the cli folder there is a ->svg->inkscape->png renderer, a plaintext renderer which renders the barcode using ascii art, and a latext rederer.

---
_Source: https://npm.io/package/code-128-encoder · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
