Прежде всего, я немного знаком с форматами штрих-кодов, и то, что я знаю, я узнал из Википедии.
У нас есть несколько штрих-кодов, сгенерированных существующим приложением, которое использует библиотеку Barcode.4NET. Штрих-код в формате кода 128А. Код для их генерации довольно прост и выглядит примерно так:
// 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";
На изображении ниже показано лучшее, что я когда-либо достиг.

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