Проверка печати MICR не работает в Windows-7

Я поддерживаю приложение PowerBuilder Classic 12.5, которое позволяет печатать чеки на принтере Source Technologies MICR. Приложение работает нормально в среде Windows XP. Мы пытаемся перейти на операционную систему Windows-7, и печать чеков больше не работает.

Вот в чем проблема. PowerBuilder выдает команду PrintOpen, за которой следуют несколько команд Print для отправки на принтер командных строк для разблокировки режима MICR и различных защищенных шрифтов:

il_job = PrintOpen( )  
Print(il_job,'&%STF[password]$')  
Print(il_job,'&%SMCPFFFF$')    
Print(il_job,'&%STP10003$')    
Print(il_job,'&%STP10002$')    
Print(il_job,'&%STP10001$')    
Print(il_job,'&%1B$&u600D')    
Print(il_job,'&%1B$*t600R')   

Это отлично работает в XP, и если вы перенаправите принтер на «печать в файл», вы увидите командные строки прямо в файле.

В Windows-7 принтер не распознает командные строки и фактически просто печатает команды на чековом листе. Если вы сделаете то же самое «печать в файл», вы увидите там команды, но каждый символ в командной строке будет разделен другими символами.

Ниже приведен образец, взятый из файла «печать в», и вы можете увидеть строку '&%SMCPFFFF$', просмотрев каждый символ, предшествующий звездочке (*).

*p171Y&*p50X%*p100XS*p150XM*p200XC*p250XP*p300XF*p350XF*p400XF*p450XF*p500X$   

Казалось бы, это проблема с драйвером печати, и на самом деле Source Technologies теперь предоставляет «Универсальный драйвер печати», который нам сказали использовать. Наш специалист по поддержке ПК смог временно заставить печать чеков работать, переустановив старый драйвер печати, который мы использовали в Windows XP, но как только принтер выключается и снова включается, он сбрасывается на новый универсальный драйвер.

Я попытался использовать PrintDefineFont и PrintSetFont, чтобы установить шрифт Courier Regular 8pt (это то, что нам нужно от службы технической поддержки Source Technologies), но это не помогло:

PrintDefineFont(il_job, 1, "Courier", -8, 400, Fixed!, AnyFont!, FALSE, FALSE)  
PrintSetFont(il_job, 1)   

Может ли кто-нибудь помочь мне с этой проблемой? Или предложите, где мне могут помочь.
Спасибо.


person Les Farrow    schedule 18.04.2014    source источник
comment
Можно ли распечатать что-либо с помощью этого шрифта вне PowerBuilder? (т.е. документ Word со шрифтом micr)   -  person Matt Balent    schedule 21.04.2014
comment
Да, я могу распечатать образец текста шрифтом micr из документа Word, то есть включив команды &%... выше в поток печати.   -  person Les Farrow    schedule 21.04.2014


Ответы (3)


Попробуйте следующее: добавьте новый принтер. Выберите порт, к которому подключен ваш принтер. Выберите Производитель: Универсальный, Принтер: Универсальный/Только текст. Когда вы печатаете на этот принтер, он должен отправить на принтер именно то, что содержится в ваших операторах Print.

person Hugh Brackett    schedule 30.04.2014

Спасибо Хью, я попробовал ваше предложение, которое звучало хорошо, но, к сожалению, оно не имело никакого эффекта.
Так получилось, что вчера я решил последнюю из проблем с печатью. Мне пришлось обращаться к каждому из специальных шрифтов (микрострока, подпись, сумма чека и т. д.) индивидуально, и я использовал комбинацию использования PrintDefineFont/PrintSetFont, встроенных командных строк принтера для сброса шрифта и изменения элемента управления Column в окне данных на текстовый элемент управления (в это поле вместе с данными перемещается командная строка принтера, и одно сработало, другое нет).
Благодарим вас за помощь.
Les

person Les Farrow    schedule 02.05.2014

Щелкните правой кнопкой мыши свое программное обеспечение, перейдите в режим совместимости и выберите в нем «Windows XP с пакетом обновления 3», нажмите «ПРИМЕНИТЬ» и «ОК».

Подтвердите, правильно ли теперь программное обеспечение отправляет команды печати?

person The Last Samurai    schedule 24.07.2019