Generowanie kodu DataMatrix GS1 przy użyciu ZXing

0

Cześć
Czy tworząc kod DataMatrix ułożenie kwadracików na wyjściowym obrazku mając takie same dane powinno być takie same?
Użyłem do testów jednego z programów do etykiet (BarTender), użyłem jakiegoś generatora online oraz utworzyłem kod w ZPL i dając takie same dane wyglądał on tak samo

Przykład ZPL:

^XA
^FT20,110^BXN,4,200,26,26,1,_,1
^FH\^FD_1240123456789_111221217^FS
^XZ

Do tworzenia kodu w c# użyłem ZXing.Net

BarcodeWriter barcodeWriter = new BarcodeWriter
{
    Format = BarcodeFormat.DATA_MATRIX,
    Options = new DatamatrixEncodingOptions
    {
        GS1Format = true,
        DefaultEncodation = Encodation.ASCII,
        MinSize = new Dimension(26, 26),
        Height = 200,
        Width = 200,
        SymbolShape = SymbolShapeHint.FORCE_SQUARE
    },
};

barcodeWriter.Write($"{(char)29}240123456789{(char)29}11221217").Save("test.png");

Kod (obrazek) z ZXing jest inny (ułożenie kwadracików) niż pozostałe metody, ale odczyt jest taki sam.
Skoro innymi metodami ułożenie jest takie same a tutaj inne, to czy może robię coś nie tak?
Sprawdzając na stronie https://www.aidecoder.com/ rezultat jest taki sam dla wszystkich testowanych kodów, ale czemu jest różnica w wyglądzie?
Próbowałem w kodzie stosować FNC1 jako separator, z lub bez 29 na początku i zawsze jest inny niż ten co z ZPL.

0

Struktura kodów 2d jest skomplikowana, można je utworzyć na różne sposoby, w zależności od wymagań, potrzebnej korekcji, nadmiarowości i tak dalej.

Dwa zupełnie różne (wizualnie) kody mogą zawierać te same dane, i to jest w zupełności OK.

Zobacz sobie zresztą na specyfikację ZPL:
https://support.zebra.com/cpws/docs/zpl/BX_Command.pdf

Dla tych samych danych, możesz podać różne QualityLevel (które definiuje stopień nadmiarowości), i (w zależności od zawartości) możesz wybrać różne character sety (parametr Format). Każda kombinacja QualityLevel-CharacterSet da optycznie różny kod, choć sam payload będzie ten sam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1