/ Как да конвертирате байт [] обратно в баркод в ZXing - zxing

Как да конвертирате байт [] обратно в баркод в ZXing - zxing

ZXing.Result получен от ZXing.BarcodeReader предоставя собственост на RawBytes на byte[], Опитах се, но не успях да намеря функция ZXing.BarcodeWriter който приема byte[] като аргумент.

Искам да има баркод от ZXing.BarcodeWriter което е точно същото ZXing.BarcodeReader чете.

баркод е известен като код 128,

BarcodeReader дава RawBytes започва с 3 байта, 105, 102, 42,

което означава [Стартов код С], [FNC 1], [42] в код 128,

което означава, че баркодът започва с 2 цифри 4, 2.

Основната причина да се намери такава функция е, че метаданните се губят, ако се преобразува баркод string и обърнати обратно.

string представлява само 4 и 2, и [Start Code C] и [FNC 1] са загубени.

Има ли функция за това? Може да приемете, че форматът на баркода е известен.

Аз използвам ZXing.NET, но предполагам, че функциите са подобни на различни платформи.

Отговори:

0 за отговор № 1

Той зависи от типа баркод, ако е кодиранметод с параметър байт масив е налице. За ацтеките баркод можете да използвате класа com.google.zxing.aztec.encoder.Encoder, който предоставя този метод:

public static AztecCode encode(byte[] data)

Класът на енкодера на QR-кода например не предоставя кодиран метод с байт [].


0 за отговор № 2

Не, няма BarcodeWriter, който приема байт масив. Но можете да зададете опция, която интерпретира символа GS1.

var reader = new BarcodeReader { Options = new DecodingOptions { AssumeGS1 = true } };

Четецът на баркодове вече ще конвертира FNC1кодова дума на низ представяне във резултата, във вашия случай "] C142". Формулировката FNC1 "] C1 не е много интуитивна, но е дефинирана в спецификацията GS1 за код 128 5.4.6.4.Всяка следваща кодова дума FNC1 е преведена на груповия сепараторен знак (GS / 0x1D / (char) 29).

От друга страна, писателят за баркодове използва самогруповият сепараторен знак. Това означава, че ако искате да генерирате един и същ баркод от резултантния низ, трябва да замените водещия "] C1" с "(char) 29".