Проблема сопоставления штрих-кодов Code128A, созданных с помощью iTextSharp, иШтрих-код.4NET

StackOverflow https://stackoverflow.com/questions/294773

Вопрос

Прежде всего, я новичок в форматах штрих-кодов, и все, что я знаю, я узнал из Википедии.

У нас есть несколько штрих-кодов, сгенерированных существующим приложением, использующим библиотеку Barcode.4NET.Штрих-код имеет формат Code 128A.Код для их создания довольно прост и выглядит примерно так:

// Create the barcode
Code128ABarcode c128A = new Code128ABarcode("045746201627080857");

Никаких других параметров для него не задано — после установки данных мы просто получаем обратно из библиотеки GIF-версию штрих-кода.

Я работаю над новым приложением, которое использует iTextSharp для создания PDF-файлов, и решил, что вместо использования двух библиотек я бы использовал библиотеку создания штрих-кодов iTextSharp, поскольку она поддерживает штрих-коды Code128.У него есть несколько различных вариантов кода 128, но ни один из них не является «кодом 128А».

Вот как выглядит для него код:

Barcode128 code128 = new Barcode128();
code128.CodeType = Barcode.CODE128;
code128.ChecksumText = true;
code128.GenerateChecksum = true;
code128.StartStopText = true;
code128.Code = "045746201627080857";

На изображении ниже показано лучшее, чего я достиг на данный момент.

alt text

Изображение вверху создано iTextSharp, а изображение внизу — Barcode4Net.Очевидно, они не одинаковы (и не только по размеру и шрифту — данные в штрих-коде сильно различаются).

Кто-нибудь достаточно знаком с компонентами штрих-кода iTextSharp (или самого iText) или со штрих-кодами Code 128A, чтобы рассказать мне, как сделать так, чтобы iTextSharp выглядел точно так же, как Barcode.4NET?

Это было полезно?

Решение

Действительно ли им необходимо выглядеть точно так же? Различные версии кода 128 способны кодировать числа, даже если сами штрих-коды выглядят совершенно по-разному; читатель должен все уладить в конце.

Я предпочитаю вариант B, потому что он содержит строчные буквы в дополнение к верхнему. Вы можете увидеть таблицу с подробным описанием различий на странице http://www.barcodeisland.com/code128.phtml

iTextSharp выглядит так, как будто он генерирует вариант C, который является наиболее компактным, если текст состоит только из десятичных цифр. Он кодирует 2 цифры в том же объеме, что и один символ в других кодировках.

Другие советы

число должно быть:

*045746201627080857*

вам нужно добавить звездочку в начало и конец, чтобы можно было прочитать штрих-код. Вам нужно проверить документацию компонента, нужны ли эти символы.

сканеру требуется ведущая и конечная звездочка на этом типе BC.

то, что я вижу в вашем коде, строка

code128.StartStopText = true;

автоматически добавит его, попробуйте установить для этого свойства значение false, и вы получите тот же штрих-код.В первом коде вы должны использовать

Code128ABarcode c128A = new Code128ABarcode("*045746201627080857*");

попробуй себя :)

Отредактировано:

Правильный штрих-код:

замещающий текст http://www.bcgen.com/demo/linear-dbgs.aspx?D=045746201627080857&S=13&CS=1

по ссылке ниже (используя Бесплатная услуга ID Automation):

http://www.bcgen.com/demo/linear-dbgs.aspx?D=045746201627080857&S=13&CS=1

что у вас есть:

замещающий текст http://www.bcgen.com/demo/linear-dbgs.aspx?D=045746201627080857&S=13&CS=3

а это Код128C вместо Код128А как вы можете проверить ссылку (я изменил свойства штрих-кода к Коду 128C)

http://www.bcgen.com/demo/linear-dbgs.aspx?D=045746201627080857&S=13&CS=3

Хотя я думаю, что в balexandre смешались генераторы, его совет хорош.

Очевидно, Barcode.4NET правильно генерирует штрих-код Code 128A, который я пытаюсь эмулировать.

iTextSharp генерирует штрих-код Code 128C, который, по словам Марка Рэнсома, должен быть в порядке, за исключением того, что пользователи и покупатели, вероятно, посмотрят на него и скажут: «Он слишком короткий и должен выглядеть как другие!»

Итак, отличный совет, но я все еще вернусь к " Как создать штрих-код Code 128A с помощью iTextSharp? "

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top