Распечатайте штрих-код code128, начинающийся с символа 'C'

Я написал программное обеспечение для печати этикеток (Windows, WPF, C #, .net 4.5), которое с радостью печатает штрих-коды на принтере Datamax H-Class, за одним исключением, при печати штрих-кода, который начинается с символа C

Когда я пытаюсь это сделать, штрих-код обрезается до первого числового символа в нем.

Строчные c работают нормально, но поскольку некоторые из наших кодов моделей начинаются с C, мне нужно найти способ обойти это.

Я предполагаю, что должен быть какой-то escape-символ, который позволил бы это? Но через гугл найти не удалось.

Я не уверен на 100%, что это проблема code128, может ли она быть связана с принтером Datamax H-Class, Datamax Windows C # SDK или, возможно, шрифтом code128, который мы используем на принтере?

К сожалению, детали настолько расплывчаты, мы будем очень признательны за любую помощь или совет о том, что проверить дальше.

Обновить.

На всякий случай (я в этом сомневаюсь, к сожалению) код, который я использую для отправки штрих-кодов на принтер (успешно в случае, если все строки штрих-кода не начинаются с C), выглядит следующим образом:

ParametersDPL paramDPL = new ParametersDPL();

paramDPL.Align = ParametersDPL.Alignment.Left;
paramDPL.Rotate = ParametersDPL.Rotation.Rotate_270;

paramDPL.IsUnicode = false;
paramDPL.TextEncoding = Encoding.ASCII;
paramDPL.WideBarWidth = 7;
paramDPL.NarrowBarWidth = 4;
paramDPL.SymbolHeight = 60;

//if the stockCode starts with 'C' the barcode will be truncated                
docDPL.WriteBarCode("E", String.Format("{0} {1}", stockCode, serialNumber), COL_1, ROW_5, paramDPL);

Объект ParametersDPL взят из Datamax C # SDK. Единственная возможная проблема, которую я мог видеть с кодом, - это, возможно, установка свойств IsUnicode или TextEncoding, но я экспериментировал с ними довольно немного, но безрезультатно. Ни одно из других владений на ParametersDPL также не казалось вероятным виновником.


person Ted    schedule 27.11.2014    source источник
comment
не могли бы вы поделиться с нами частью вашего кода? это своего рода абстрактный вопрос в такой форме   -  person ymz    schedule 27.11.2014
comment
Вот и все, ymz. К сожалению, я не думаю, что что-то не так с фактическим кодом печати, поскольку он работает правильно во всех других случаях.   -  person Ted    schedule 27.11.2014
comment
есть ли какая-то логика за «stockCode»? или это просто символ / строка с буквой?   -  person ymz    schedule 27.11.2014
comment
@Ted Нужна помощь, чтобы разобраться с DPL. Не могли бы вы помочь?   -  person CuriousLearner    schedule 18.03.2021
comment
Есть ли здесь вопрос, по которому вам нужна помощь с @Archan?   -  person Ted    schedule 19.03.2021
comment
@Ted Много боролся на выходных, забыл проверить, что я что-то опубликовал на SO, но в конце концов понял это после прочтения всего руководства. Но мой вопрос был таким: stackoverflow.com/questions/66697886/   -  person CuriousLearner    schedule 22.03.2021
comment
@Ted Спасибо за ответ, честно говоря, я не очень надеялся получить ответ на вопрос, созданный 7 лет назад. Если мне понадобится дополнительная помощь, я вернусь к вам.   -  person CuriousLearner    schedule 22.03.2021
comment
@ArchanJoshi Я не знаю, насколько я мог бы помочь, потому что, наверное, прошло 7 лет с тех пор, как я много работал над DPL! Рад слышать, что у вас все получилось - вы тоже должны ответить на свой вопрос, возможно, чтобы помочь другим, и в качестве напоминания для себя в будущем!   -  person Ted    schedule 23.03.2021
comment
@Ted: Звучит неплохо. Спасибо за совет. Обязательно отвечу на вопрос.   -  person CuriousLearner    schedule 24.03.2021


Ответы (1)


Я не знаком с Datamax PCL, но симптомы предполагают, что буква «C» используется для выбора подалфавита «C» кода 128. Может быть полезно попробовать код акции, начинающийся с «A» или «ZB», и посмотреть, исчезнет ли «A» или «B». Если это так, то первый символ может использоваться для выбора подалфавита («A» - это ASCII только с заглавными буквами, «B» - это ASCII без элементов управления.)

Затем вам нужно будет очень внимательно изучить формат Datamax PCL - возможно, там есть (возможно, дополнительный) символ форматирования, что делает его чувствительным к начальным символам. Возможно, вставка первой буквы «Б» решит проблему.

person Magoo    schedule 27.11.2014
comment
Мистер Магу, вы совершенно правы, и принц среди людей, большое вам спасибо! Простое добавление префикса A, B или C к строке штрих-кода действует как селектор набора символов (я бы сказал, немного хитрый метод со стороны Datamax SDK), поэтому теперь я добавляю B (а не ZB! я полагаю, это была опечатка?) в начале каждого штрих-кода, и все коды акций печатаются успешно. - person Ted; 28.11.2014