GS1 Composite 2D Component Generator

Generate GS1 Composite 2D Component barcodes in your browser with live preview, validation, and PNG/SVG export.

Advanced options
Enter a value to see a live preview.
Options

These map directly to real generator options; anything not listed here is available under Advanced options above.

What GS1 Composite Component is

GS1 Composite Component is the standalone 2D composite piece that normally sits above a real GS1 linear symbol (like EAN-13, GS1-128, or a GS1 DataBar variant) to carry supplemental data -- honestly, this is NOT a full standalone symbol on its own (the same honest framing already established for the EAN-5/EAN-2 add-on companions in this catalog): it needs a real linear partner in actual production use. bwip-js delegates its own drawing to its MicroPDF417 encoder (for CC-A/CC-B) or its PDF417 encoder (for CC-C) -- confirmed directly.

Generate it now

Enter your GS1 Application Identifier data (e.g. a batch/lot number) to see a live preview.

Valid input

The payload must be structured as GS1 AI data. ccversion must be "a", "b", or "c" ("ccversion must be a, b or c"). cccolumns (the composite component's own column count) must be 2 to 4 for CC-A/CC-B ("CC-A and CC-B require 2 to 4 columns") or up to 30 overall ("The maximum number of composite component columns is 30"). lintype -- the real linear symbology this composite is meant to accompany -- is genuinely OPTIONAL: bwip-js's own real, literal default is an empty value, and omitting it still renders a valid, standalone composite component (bwip-js's own pinned demo for this bcid does not set it either).

Key options

Supported options include lintype (the real linear symbology this composite accompanies -- EAN-13, UPC-A, EAN-8, UPC-E, GS1-128, or one of 6 GS1 DataBar variants), ccversion (CC-A, CC-B, or CC-C), and cccolumns. Selecting a lintype raises the auto-selected minimum column count to match that linear symbology's own real requirement; leaving it blank still works, defaulting to a plain 2-column layout.

Output and printing

Export SVG for vector-precise label artwork or PNG for a quick proof.

Common uses

GS1 Composite Component appears alongside a real GS1 linear symbol on retail or logistics labels to carry supplemental data (like a batch/lot number or expiry date) that the linear symbol alone does not encode.

Example

See the live preview above, seeded with a bwip-js-verified valid GS1 AI payload paired with a real lintype.

Size guidance

Symbol geometry is driven by ccversion (which underlying 2D encoder is used) and cccolumns (the composite component's own column count) together -- fixing either changes the rendered shape.

Troubleshooting

A rejected render is usually an invalid ccversion, cccolumns outside 2-4 for CC-A/CC-B (or beyond 30 overall), or a cccolumns value too small for the chosen lintype's own minimum requirement.

Related formats

Related formats: GS1 DataBar Stacked Composite (a fused primary-plus-composite pair, already in this catalog, permanent cohort -- a different real capability from this standalone composite-only piece) and MicroPDF417/PDF417 (the underlying 2D encoders this capability delegates its own drawing to, both already in this catalog).

FAQ

Do I need to specify lintype?

No -- lintype is genuinely optional. bwip-js's own real default is empty, and a composite component still renders successfully without it (falling back to a plain 2-column layout). Specifying it is useful because it documents which real linear symbol this composite is meant to sit above and raises the minimum column count to match that symbology's own requirement.

Is this a complete, scannable barcode on its own?

In practice, no -- GS1 Composite Component is designed to be printed directly above a real GS1 linear symbol (like GS1 DataBar or GS1-128) as part of a single linked pair. This generator renders the composite piece on its own so you can preview and export it, the same standalone-preview treatment this catalog already gives EAN-5/EAN-2 add-on symbols.