2012-05-03 1 views
0

Я пытаюсь напечатать штрих-код штрих-кода Code 128 C (поскольку тип A/B будет слишком широк для моих требований) с помощью принт-принтера Epson TM-H6000III, используя Общие элементы управления OPOS 1.8. Мой код написан на C++.Печать кода 128 C штрих-код через код C++, взаимодействующий с OPOS Common Controls 1.8

Обычно я напечатать штрих-код, используя следующий фрагмент кода:

const LONG PTR_BCS_Code128 = 110; 
lOposBarcodeType = PTR_BCS_Code128; 
lReturn = m_PosPrinter.PrintBarCode(2,*lpszTextline,lOposBarcodeType,120,5,PTR_BC_CENTER,PTR_BC_TEXT_BELOW); 

Здесь *lpszTextline представляет данные, которые должны быть напечатаны в виде штрих-кода.

С предложениями найти в Интернете, я попытался сделать следующие изменения для печати штрих-кода в формате Code 128 C:

const LONG PTR_BCS_Code128_Parsed = 123; 
lOposBarcodeType = PTR_BCS_Code128_Parsed; 
lReturn = m_PosPrinter.PrintBarCode(2,*lpszTextline,lOposBarcodeType,120,5,PTR_BC_CENTER,PTR_BC_TEXT_BELOW); 

и пытался форматировать данные штрих-кода различными способами:

  • Ведущий "{C"
  • Ведущий "{C", конечный "H"
  • Изготовление №. символов в данных даже

Но ни один из способов не работал. Это всегда приводило к ошибке OPOS_E_ILLEGAL с ResultCodeExtended = 300003. Я не могу найти больше информации о расширенном коде в Интернете.

Любая помощь в этом отношении будет высоко оценена.

Заранее спасибо. Prosu

+0

128C кодирует номера только 00-99. Если вы пытаетесь добавить текст ASCII, вам нужно использовать 128A или 128B - или преобразовать ASCII в числа ('{C' = 91 35) и не забудьте его переустановить при сканировании. – charlesbridge

ответ

0

Этот режим часто определяется прошивкой принтера на основе данных, которые вы пытаетесь распечатать. Лучшее поведение - когда он пытается печатать как можно более компактным: режим C используется, если данные все числовые, режим A используется, если он является алфавитом и т. Д., И он переключается из режима в режим по мере необходимости: 17-значное число может печатать как режим C для первых 16 цифр, а затем переключиться в режим A для 17-й цифры.

Если ваше программное обеспечение вашего принтера справляется с этим напрямую, вы даже не сможете самостоятельно выбрать этот режим. В качестве альтернативы, некоторые термические принтеры не могут печатать ничего, кроме режима C, и возвращают ошибку, если вы попытаетесь напечатать буквенные символы. (У нас были несколько старых принтеров IBM Suremark, которые могли печатать только режим C.)

Вы должны проверить это с помощью Epson.

 Смежные вопросы

  • Нет связанных вопросов^_^