Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Code128 software barcode properties

Avatar

Level 2

We use code128 symbology considerably and the options for this in Livecycle seem a bit strange.

There is this property 'Data length' which appears to adjust the density of the barcode but in an 'inverse manner':

Usually one specifies a 'module width' - which is the width of the thinnest constituent of the different bar patterns that make up each encoded symbol.

Larger module width means less dense [wider] barcodes.

But here, the larger the value of 'Data length', the denser the barcode is rendered.

However, it is related to how many characters are encoded.

In many cases, for me, the length of data is not fixed - it is however long my string of data is [eg material descriptions etc.]

1] Can I not control barcode density independently of the length of data?

Seems very odd. My expectation would be a property to set module width and then I would enable 'expand to fit' in X dimension - but expand to fit is not possible for the object type.

2] I see there are 'Code128', 'Code128A', 'Code128B', 'Code128C' and 'Code128SSCC'.

Is there no way to enable 'minimal width encoding'?

I had hoped there would be an option on Code128 to do this - ie it automatically switches between subsets A/B/C to give support to all allowed characters and ensure the generated barcode is as short as possible [typically shifting to subset C when 2 or more digits encountered].

Thanks in advance

1 Reply

Avatar

Level 2

1] I had read about "moduleWidth" and "moduleHeight" but only in context of 2D barcodes.

But it works fine on 1D barcodes also:

Go to XML Source and add the "moduleWidth" attribute to the <barcode... ...> element, eg:

<field name="Code128BarCode1" w="140.11mm" h="13.594mm">

  <ui>

    <barcode type="code128" wideNarrowRatio="fixed" moduleWidth="0.125mm" checksum="auto" textLocation="belowEmbedded" dataLength="10"/>

  </ui>

...

...

This then allows me to make a barcode field as wide as the page and the module width overrides any other calculation which is done, keeping consistent density for however many characters are passed for barcoding.