# Barcode

Plugin Identifier: 20000

Summary

This 4D external is a collection of several libraries to read and write various barcode formats. More specifically, the following software are used:

- libqrencode.3.4.1
- libzbar.0.10
- libzint.2.4.2
- libpdf417.0.91
- libdmtx.0.7.5

(QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other countries.)

## qrencode

### MICRO QRCODE Data

`code:=MICRO QRCODE Data (data; level; version; type)`

`data (BLOB)`

`level (LONGINT)`

You can use a QR Error Correction Level constant for `level`.

`version (LONGINT)`

You can use a QR Micro Version constant for `version`.

`type (LONGINT)`

You can use a QR Export Format constant for `type`.

`code` (TEXT)

Discussion

### MICRO QRCODE Text

`code:=MICRO QRCODE Text (data; mode; level; version; type)`

`data (TEXT)`

`mode (LONGINT)`

You can use a QR Encode Mode constant for `mode`.

`level (LONGINT)`

You can use a QR Error Correction Level constant for `level`.

`version (LONGINT)`

You can use a QR Micro Version constant for `version`.

`type (LONGINT)`

You can use a QR Export Format constant for `type`.

`code` (TEXT)

Discussion

### QRCODE Data

`code:=QRCODE Data (data; level; type)`

`data (BLOB)`

`level (LONGINT)`

You can use a QR Error Correction Level constant for `level`.

`type (LONGINT)`

You can use a QR Export Format constant for `type`.

`code` (TEXT)

Discussion

### QRCODE Text

`code:=QRCODE Text (data; mode; level; type)`

`data (TEXT)`

`mode (LONGINT)`

You can use a QR Encode Mode constant for `mode`.

`level (LONGINT)`

You can use a QR Error Correction Level constant for `level`.

`type (LONGINT)`

You can use a QR Export Format constant for `type`.

`code` (TEXT)

Discussion

## zbar

### BARCODE Read image

`firstValue:=BARCODE Read image (barcodeImage; types; values)`

`barcodeImage (PICTURE)`

`types (ARRAY)`

`values (ARRAY)`

`firstValue` (TEXT)

Discussion

## pdf417

### PDF417 Data

`code:=PDF417 Data (data; type; errorLevel)`

`data (BLOB)`

`type (LONGINT)`

You can use a PDF417 Export Format constant for `type`.

`errorLevel (LONGINT)`

Valid values are 1 to 4. 0 defaults to automatic.

`code` (TEXT)

Discussion

### PDF417 Text

`code:=PDF417 Text (data; type; errorLevel)`

`data (TEXT)`

`type (LONGINT)`

You can use a PDF417 Export Format constant for `type`.

`errorLevel (LONGINT)`

Valid values are 1 to 4. 0 defaults to automatic.

`code` (TEXT)

Discussion

## zint

### BARCODE Data

`code:=BARCODE Data (data; barcodeType; type; errorText; options)`

`data (BLOB)`

`barcodeType (LONGINT)`

You can use a ZINT Barcode Type constant for `barcodeType`.

`type (LONGINT)`

You can use a ZINT Export Format constant for `type`.

`errorText (TEXT)`

On return, error message if any.

`options (ARRAY)`

Optional. Up to 3 elements (1-based) of integer values. Effect is specific to barcode type.

`code` (TEXT)

Discussion

### BARCODE Text

`code:=BARCODE Text (data; barcodeType; type; errorText; options)`

`data (TEXT)`

`barcodeType (LONGINT)`

You can use a ZINT Barcode Type constant for `barcodeType`.

`type (LONGINT)`

You can use a ZINT Export Format constant for `type`.

`errorText (TEXT)`

On return, error message if any.

`options (ARRAY)`

Optional. Up to 2 elements (1-based) of integer values. Effect is specific to the barcode type.

`code` (TEXT)

Discussion

## data matrix

### DMTX Data

`code:=DMTX Data (data; scheme; type)`

`data (BLOB)`

`scheme (LONGINT)`

You can use a DMTX Encode Mode constant for `scheme`.

`type (LONGINT)`

You can use a DMTX Export Format constant for `type`.

`code` (TEXT)

Discussion

### DMTX Read image

`text:=DMTX Read image (barcodeImage)`

`barcodeImage (PICTURE)`

`text` (TEXT)

Discussion

The library expects that the source is PDF417. If not, it may hang in the worst case.

### DMTX Text

`code:=DMTX Text (data; scheme; type)`

`data (TEXT)`

`scheme (LONGINT)`

You can use a DMTX Encode Mode constant for `scheme`.

`type (LONGINT)`

You can use a DMTX Export Format constant for `type`.

`code` (TEXT)

Discussion

## QR Encode Mode

`QR Mode Unicode (0)`

`QR Mode Kanji (3)`

## QR Error Correction Level

`QR Correction Level L (0)`

`QR Correction Level M (1)`

`QR Correction Level Q (2)`

`QR Correction Level H (3)`

## QR Micro Version

`QR Micro Version 1 (1)`

`QR Micro Version 2 (2)`

`QR Micro Version 3 (3)`

`QR Micro Version 4 (4)`

## QR Export Format

`QR Format Binary (0)`

`QR Format SVG (1)`

## PDF417 Export Format

`PDF417 Format Binary (0)`

`PDF417 Format SVG (1)`

## DMTX Encode Mode

`DMTX Mode ASCII (0)`

`DMTX Mode C40 (1)`

`DMTX Mode Text (2)`

`DMTX Mode X12 (3)`

`DMTX Mode Edifact (4)`

`DMTX Mode Base256 (5)`

## DMTX Export Format

`DMTX Format Binary (0)`

`DMTX Format SVG (1)`

## ZINT Barcode Type

`ZINT CODE11 (1)`

`ZINT C25MATRIX (2)`

`ZINT C25INTER (3)`

`ZINT C25IATA (4)`

`ZINT C25LOGIC (6)`

`ZINT C25IND (7)`

`ZINT CODE39 (8)`

`ZINT EXCODE39 (9)`

`ZINT EANX (13)`

`ZINT EAN128 (16)`

`ZINT CODABAR (18)`

`ZINT CODE128 (20)`

`ZINT DPLEIT (21)`

`ZINT DPIDENT (22)`

`ZINT CODE16K (23)`

### not implemented ###

`ZINT CODE49 (24)`

### not implemented ###

`ZINT CODE93 (25)`

`ZINT FLAT (28)`

`ZINT RSS14 (29)`

`ZINT RSS LTD (30)`

`ZINT RSS EXP (31)`

`ZINT TELEPEN (32)`

`ZINT UPCA (34)`

`ZINT UPCE (37)`

`ZINT POSTNET (40)`

`ZINT MSI PLESSEY (47)`

`ZINT FIM (49)`

`ZINT LOGMARS (50)`

`ZINT PHARMA (51)`

`ZINT PZN (52)`

`ZINT PHARMA TWO (53)`

`ZINT PDF417 (55)`

The error correction capacity (0-8) can be specified by setting options{1}.

The number of columns (1-30) used can be determined using options{2}.

`ZINT PDF417TRUNC (56)`

The error correction capacity (0-8) can be specified by setting options{1}.

The number of columns (1-30) used can be determined using options{2}.

`ZINT MAXICODE (57)`

### not implemented ###

`ZINT QRCODE (58)`

The error correction level (1-4) can be specified by setting options{1}.

The size of the symbol (1-20) can be specified by setting options{2}.

`ZINT CODE128B (60)`

`ZINT AUSPOST (63)`

`ZINT AUSREPLY (66)`

`ZINT AUSROUTE (67)`

`ZINT AUSREDIRECT (68)`

`ZINT ISBNX (69)`

`ZINT RM4SCC (70)`

### not implemented ###

`ZINT DATAMATRIX (70)`

The size of the symbol (1-15) can be specified by setting options{2}.

`ZINT EAN14 (72)`

`ZINT CODABLOCKF (74)`

### not implemented ###

`ZINT NVE18 (75)`

`ZINT JAPANPOST (76)`

`ZINT KOREAPOST (77)`

`ZINT RSS14STACK (79)`

`ZINT RSS14STACK OMNI (80)`

`ZINT RSS EXPSTACK (81)`

`ZINT PLANET (82)`

`ZINT MICROPDF417 (84)`

The number of columns used can be determined using options{2}.

`ZINT ONECODE (85)`

`ZINT PLESSEY (86)`

`ZINT TELEPEN NUM (87)`

`ZINT ITF14 (89)`

`ZINT KIX (90)`

`ZINT AZTEC (92)`

The amount of error correction data (1-4) can be specified by setting options{1}.

The size of the symbol (1-18) can be specified by setting options{2}.

`ZINT DAFT (93)`

`ZINT MICROQR (97)`

The size of the symbol (1-4) can be specified by setting options{2}.

`ZINT HIBC 128 (98)`

`ZINT HIBC 39 (99)`

`ZINT HIBC DM (102)`

The size of the symbol (1-15) can be specified by setting options{2}.

`ZINT HIBC QR (104)`

The error correction level (1-4) can be specified by setting options{1}.

The size of the symbol (1-20) can be specified by setting options{2}.

`ZINT HIBC PDF (106)`

The error correction capacity (0-8) can be specified by setting options{1}.

The number of columns (1-30) used can be determined using options{2}.

`ZINT HIBC MICPDF (108)`

The number of columns (1-4) used can be determined using options{2}.

`ZINT HIBC BLOCKF (110)`

### not implemented ###

`ZINT HIBC AZTEC (112)`

The amount of error correction data (1-4) can be specified by setting options{1}.

The size of the symbol (1-18) can be specified by setting options{2}.

`ZINT AZRUNE (128)`

`ZINT CODE32 (129)`

`ZINT EANX CC (130)`

### not implemented ###

`ZINT EAN128 CC (131)`

### not implemented ###

`ZINT RSS14 CC (132)`

### not implemented ###

`ZINT RSS LTD CC (133)`

### not implemented ###

`ZINT RSS EXP CC (134)`

### not implemented ###

`ZINT UPCA CC (135)`

### not implemented ###

`ZINT UPCE CC (136)`

### not implemented ###

`ZINT RSS14STACK CC (137)`

### not implemented ###

`ZINT RSS14 OMNI CC (138)`

### not implemented ###

`ZINT RSS EXPSTACK CC (139)`

### not implemented ###

`ZINT CHANNEL (140)`

The number of channels in the symbol (3 - 8) can be specified by setting options{2}.

`ZINT CODEONE (141)`

The type of Code One symbol - variable height symbols which are roughly square (1-10) can be selected by setting options{2}.

`ZINT GRIDMATRIX (142)`

The error correction capacity (1-4) can be specified by setting options{1}.

The symbol size (1-13) can be specified by setting options{2}.

## ZINT Export Format

`ZINT Format Binary (0)`

`ZINT Format SVG (1)`