If the barcode of an EAN128 barcode contains the application identifier 30, the human readable is not rendered properly. Application identifiers should be enclosed within parenthesis. Application identifiers before AI = 30 are properly enclosed; however, application identifiers following the segment with AI=30 are not properly enclosed. While I have not tested this, there is a possibility that the issue is because AI = 30 defines a variable length segment of up to 8 characters. In my examples which are attached I have used an 8 character segment so the variable length should have no effect because is is behaving in this case like a fixed length segment (no FNC1, group separator required). First label example shows the problem. The second label example shows that removing the AI=30 segment allows the human readable to be rendered properly.
Steps to Reproduce:
Set the text property for a barcode with Symbology = EAN128, CharacterSet = CharsetC, HumanReadableText = True.
Use this as the barcode text property: 0120885251000023300000003032021200002112345678
This barcode breaks down to:
01 - application identifier for SCC14 (UPC Code)
20885252000023 - 14 digit UPC Code including check digit.
30 - application identifier for quantity
00000030 - quantity. No FNC1 group separator is required because the maximum length for quantity is used.
3202 - application identifier for net weight indicating 2 decimal digits.
120000 - net weight. Includes 2 decimal digits so 1200.00
21 - application identifier for serial number
12345678 - eight digit serial number
Actual Results:
(01)20885251000023(30)0000003032021200002112345678
Expected Results:
(01)20885251000023(30)00000030(3202)120000(21)12345678 (see attachment to original bug report).