What GS1 DataBar Omnidirectional Composite is
GS1 DataBar Omnidirectional Composite pairs a GS1 DataBar Omnidirectional linear symbol (already covered separately in this catalog) with a linked 2D composite component printed directly above it, so a single label can carry a GTIN plus supplemental Application Identifier data (a batch/lot number, best-before date, or similar) that would not fit -- or would not print reliably -- as part of the linear symbol alone. Confirmed directly: bwipp_databaromnicomposite parses the pipe-delimited "<linear>|<composite>" payload with its own internal bwipp_gs1process() call, then delegates the linear-component drawing to bwipp_databaromni() and the composite-component drawing to a second, separate internal bwipp_gs1_cc() call -- the same composite-pairing shape already established for upcacomposite/gs1-128composite.
Generate it now
Enter the linear GTIN payload and a composite-component payload separated by a pipe character, e.g. "(01)00012345678905|(10)ABC123" -- the companion Application Identifier in the composite half must be parenthesized.
Valid input
A pipe character must separate the linear payload from the composite-component payload (bwipp.missingCompositeComponent rejects a missing pipe). The linear half follows GS1 DataBar Omnidirectional's own rules: it must begin with the (01) Application Identifier followed by a 13 or 14-digit GTIN with a valid Mod-10 check digit. The companion Application Identifier in the composite half must be parenthesized -- an unparenthesized value (e.g. "10ABC123" instead of "(10)ABC123") is rejected with bwipp.GS1valueTooLong because the parser cannot tell where the prior AI's value ends without it. A bad checksum on the linear GTIN is independently rejected with bwipp.GS1badChecksum.
Key options
Supported options include height (a real, pass-through option reaching the underlying databaromni delegate). Real, literal default is the sentinel -1 (auto-computed). "linkage" is a real databaromni option too, but this bcid unconditionally forces it to true regardless of any caller-supplied value, since a linked composite component is always present here by definition.
Output and printing
Export SVG for vector-precise label artwork or PNG for a quick proof.
Common uses
Retail and healthcare items that need to carry a GTIN plus supplemental data (lot/batch, expiration, or a serial number) on a single, size-constrained label use this composite pairing when the plain GS1 DataBar Omnidirectional symbol alone cannot fit that extra data.
Example
See the live preview above, seeded with a bwip-js-verified valid value.
Size guidance
The composite component's own size (CC-A or CC-B, chosen automatically) sits above the linear component; a fixed height changes the linear component's own bar height without affecting the composite component's row layout.
Troubleshooting
A rejected value usually means either the pipe separator is missing, the linear GTIN's own check digit is wrong, or the composite-component's own companion Application Identifier is missing its parentheses.
Related formats
Related formats: the separately-covered plain GS1 DataBar Omnidirectional generator (no composite component), and GS1 DataBar Stacked Omnidirectional Composite / GS1 DataBar Truncated Composite for other DataBar variants paired with a composite component.
FAQ
Why was my companion Application Identifier rejected?
The companion AI in the composite half must be parenthesized -- e.g. "(10)ABC123", not "10ABC123". Without the parentheses, the parser cannot tell where the linear GTIN's own value ends, and rejects it as too long.
Is the composite component always drawn?
Yes -- this capability always draws a real composite component from the data you provide after the pipe character, and its internal linear-component flag is permanently on by definition. There is no way to render just the linear half from this page; use the separate plain GS1 DataBar Omnidirectional generator for that.