Print 2D barcode with reporting engine

Everything is in the question. Is it possible to generate a report containing a 2D barcode?

Thanks

Yes, reporting has a barcode component with support for a variety of 1 and 2d codes, including datamatrix, QR, aztec, and pdf417:
https://docs.inductiveautomation.com/display/DOC80/Report+-+Barcode

1 Like

Very good. Thank you!

Does someone print SSCC-18? That seems a standard barcode format for pallet shipping…

No, the backing library we’re using for barcode generation (Google’s zxing) doesn’t support that format. If you’re comfortable with Java, you could make a new report component (following the SDK template: https://github.com/inductiveautomation/ignition-sdk-examples/tree/master/report-component) and an open source barcode library, such as barbecue.

From what I can see on google, it seems that SSCC-18 is not really a barcode format. It defined what are the informations included in the barcode.

The format is GS1-128 with is very close to CODE 128.

Nobody did that before? The application is to print a pallet barcode. I suppose we are not the first one that need to do that…

No, to my knowledge, you’re the first person to ask. You can certainly post a request on ideas.inductiveautomation.com, or ask around if someone here on the forums (perhaps for a contract) would be willing to do the requisite development. It really doesn’t look like it would be too challenging to mash up the library I linked with our reporting engine.

Actually, looking into it more, you might just need to supply the right string (including raw ASCII characters) to a Code-128 report object and it’ll output what’s technically a GS1-128/SSCC-18 barcode - the symbology is the same, the only difference is the control characters.

1 Like

Yes, we do this all the time in Ignition at our company. Just write your report to encode the data properly into a Code128 barcode. SSCC-18 is just a standard encoding built on top of GS1-128 which is built on top of Code128…

OK! Thank you very much to both of you. This is exactly my understanding but I wanted to be sure.