% backend/README 2026-03-30
% vim: set ts=4 sw=4 et :

Here is a guide to which bit of source code does what.

library.c:
    API entry points

zint.h:
    main include

zintconfig.h:
    version defines


Barcodes
--------

2of5.c:
    Code 2 of 5 Standard (Matrix)
    Code 2 of 5 Industrial
    Code 2 of 5 IATA
    Code 2 of 5 Data Logic

2of5inter.c:
    Code 2 of 5 Interleaved

2of5inter_based.c:
    ITF-14
    Deutsche Post Leitcode
    Deutsche Post Identcode

auspost.c:
    Australia Post Standard Customer
    Australia Post Reply Paid
    Australia Post Routing
    Australia Post Redirection

aztec.c:
    Aztec Code
    Compact Aztec Code
    Aztec Runes

bc412.c:
    IBM BC412 (SEMI T1-95)

channel.c:
    Channel Code

codabar.c:
    Codabar

codablock.c:
    Codablock F

code11.c:
    Code 11

code128.c:
    Code 128
    Code 128 (Suppress Code Set C)
    GS1-128 (UCC/EAN-128)

code128_based.c:
    NVE-18
    EAN-14
    DPD Code
    Universal Postal Union S10

code16k.c:
    Code 16k

code.c:
    Code 39
    LOGMARS
    Extended Code 39 (Code 39+)
    Code 93
    VIN

code1.c:
    Code One

code49.c:
    Code 49

composite.c:
    CC-A Composite Symbology
    CC-B Composite Symbology
    CC-C Composite Symbology

dotcode.c:
    Dot Code

dmatrix.c:
    Data Matrix (ECC 200)
    Royal Mail 2D Mailmark (CMDM)

dxfilmedge.c:
    DX Film Edge Barcode

gridmtx.c:
    Grid Matrix

hanxin.c:
    Han Xin Code

imail.c:
    USPS Intelligent Mail (OneCode)

maxicode.c:
    UPS MaxiCode

medical.c:
    Pharmacode One-Track
    Pharmacode Two-Track
    Code 32 (Italian Pharmacode)
    Pharmazentral Nummer (PZN)

pdf417.c:
    PDF417
    Compact PDF417
    MicroPDF417

plessey.c:
    UK Plessey Code (bidirectional)
    MSI Plessey

postal.c:
    POSTNET
    PLANET
    Brazilian CEPNet
    Facing Identification Mark (FIM)
    Royal Mail 4-State Country Code (RM4SCC)
    Dutch Post KIX Code
    DAFT Code
    Flattermarken
    Korean Post Barcode
    Japanese Postal Code

qr.c:
    QR Code
    Micro QR Code
    UPNQR
    Rectangular Micro QR Code (rMQR)

rss.c:
    GS1 DataBar Omnidirectional (RSS-14)
    GS1 DataBar Truncated
    GS1 DataBar Stacked (RSS-14 Stacked)
    GS1 DataBar Stacked Omnidirectional (DataBar-14 Stacked Omnidirectional)
        (RSS-14 Stacked Omnidirectional)
    GS1 DataBar Limited (RSS Limited)
    GS1 DataBar Expanded (RSS Expanded)
    GS1 DataBar Expanded Stacked (RSS Expanded Stacked)

telepen.c:
    Telepen ASCII
    Telepen Numeric

upcean.c:
    UPC-A
    UPC-E
    EAN-2 add-on
    EAN-5 add-on
    EAN-8
    EAN-13
    SBN (verification)
    ISBN (verification)
    ISBN-13 (verification)


Common
------

common.c:
    general routines used by all

eci.c:
    ECI, tables in includes
    big5.h, eci_sb.h, gb18030.h, gb2312.h, gbk.h, ksx1001.h, sjis.h

filemem.c:
    Memory file (BARCODE_MEMORY_FILE)

general_field.c:
    GS1 general field compaction (GS1 DataBar and composites)

gs1.c:
    GS1 parsing & verifying, includes
    gs1_lint.h, iso3166.h, iso4217.h

large.c:
    128-bit arithmetic

reedsol.c:
    Reed-Solomon


Output
------

bmp.c:
    Windows Bitmap format (BMP)

emf.c:
    Enhanced Metafile Format (EMF)

gif.c:
    Graphics Interchange Format (GIF)

output.c:
    general output routines

pcx.c:
    ZSoft Paintbrush Format (PCX)

ps.c:
    Encapsulated PostScript Format (EPS)

raster.c:
    raster output, sets up bitmap arrays, includes
    raster_font.h, zfiletypes.h

svg.c:
    Scalable Vector Graphic Format (SVG), includes
    fonts/normal_woff2.h, fonts/upcean_woff2.h

tif.c:
    Tagged Image File Format (TIF)

vector.c:
    vector output, sets up vector linked lists, includes
    zfiletypes.h


Windows-only
------------

dllversion.c:
    DllGetVersion()

libzint.rc:
    resource script
