:: Visual Foxpro, Foxpro for DOS
QR код с помощью foxbarcodeqr
OlegS
Автор

Сообщений: 36
Откуда: Grodno
Дата регистрации: 28.04.2016
Надо создать QR код для подстановки в WORD.
Нашел на форуме ссылку на vfpx.codeplex.com и FoxBarcodeQR
решил протестировать

SET PROCEDURE TO LOCFILE("FoxBarcodeQR.prg") ADDITIVE
*--- Create FoxBarcodeQR object and QR Code barcode image<
LOCAL loFbc, lcQRImage
loFbc = CREATEOBJECT("FoxBarcodeQR")
lcQRImage = loFbc.QRBarcodeImage("Тут много информации заложено",'c:\DOG\sha\Rf',6,1)

Создает jpg(или png) QR код все ок, но при расшифровки его на сайте вместо русского текста абра-кадабра.
PRG все у меня в кодовой странице 1251. Если поменять на UTF-8 тогда QR код расшифровывается нормально.
Может кто знает что я делаю не так?



Исправлено 1 раз(а). Последнее : OlegS, 10.11.16 23:13
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
OlegS
Автор

Сообщений: 36
Откуда: Grodno
Дата регистрации: 28.04.2016
Все решил проблему с помощью нашего форума (не раз меня спасал он) forum.foxclub.ru
если кому интересно:

T1='Информация о программе путешествия'
T1utf8=STRCONV(t1,9)
lcQRImage = loFbc.QRBarcodeImage(T1utf8,'c:\DOG\sha\Rf',6,1)
Ratings: 0 negative/1 positive
Re: QR код с помощью foxbarcodeqr
Sega

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Коллеги, а как вы решаете проблему со строками длина которых больше 128 символов (если в UTF-8)?

Генерирую QR-код для квитанции Сбербанка. Отображается только 128 символов, и этого очень мало.
В кодировке WIN1251 Сбербанк ругается на кодировку.
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Sega
Генерирую QR-код для квитанции Сбербанка. Отображается только 128 символов, и этого очень мало.
Отображается ГДЕ? И зачем тебе отображение? Где берешь и как собираешь строку для кодирования?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Sega

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
строку собираю вот так:

LOCAL lcName, lcPersonalAcc, lcBankName, lcBIC, lcCorrespAcc
SET PROCEDURE TO LOCFILE("FoxBarcodeQR.prg") ADDITIVE
*--- Create FoxBarcodeQR private object
PRIVATE poFbc
m.poFbc = CREATEOBJECT("FoxBarcodeQR")
lcText="ST00012"
lcName="УФК по Пензенской области (УВД по Пензенской области)"
lcPersonalAcc="40101810300000010001"
lcBankName="ГРКЦ ГУ Банка России по Пензенской области"
lcBIC="045655001"
lcCorrespAcc="00000000000000000000"
lcText = STRCONV(lcText+"|Name="+lcName+"|PersonalAcc="+lcPersonalAcc+"|BankName="+lcBankName+"|BIC="+lcBIC+"|CorrespAcc="+lcCorrespAcc,9)

Далее вызываю репорт, где для этой картинки в качестве Control Source указано
poFbc.QRBarcodeImage(lcText)

QR-код в отчете генерируется, но если его сканировать любым приложением со смартфона, то видно, что строка получается вот такая:
Текст штрих-кода:
ST00012|Name=УФК по Пензенской области (УВД по Пензенской области)|PersonalAcc=40101810300000010001|BankName=ГРКЦ ГУ Банка России по Пензенской области|BIC=045655001|CorrespAc
Строка обрезалась!И из-за этого Сбербанк её уже не принимает, т.к. ругается на то, что не все обязательные атрибуты указаны.

Если не конвертировать в UTF-8, а оставить в WIN1251 то строка влезает вся, но русские названия лезут гречей и проверочная программа Сбербанка говорит о том, что
Ошибка: Признак кодировки не соответствует фактической кодировке строки.
хотя я и указываю идентификатор как ST00011



Исправлено 2 раз(а). Последнее : Sega, 14.02.18 12:34
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Grisha

Сообщений: 160
Дата регистрации: 07.07.2005
github.com
BarCodeLibrary.dll has the limitation of encoding only up to 255 characters, so FoxBarcodeQR also has this limitation.
Ratings: 0 negative/1 positive
Re: QR код с помощью foxbarcodeqr
Sega

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Печаль печальная ....

Может подскажите хорошие бесплатные online-сервисы генерации QR-кода?
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Евгений Банщиков

Сообщений: 218
Откуда: Kurgan
Дата регистрации: 09.04.2004
Sega
Печаль печальная ....
Может подскажите хорошие бесплатные online-сервисы генерации QR-кода?
Для генерации QR кода можно использовать quricol32.dll .
Есть также консольная утилита zint , там можно сгенерить вообще любой формат штрих-кода
sourceforge.net
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
OlegS
Автор

Сообщений: 36
Откуда: Grodno
Дата регистрации: 28.04.2016
я делал с помощью гугл-сервиса генерацию кода.

www.foxite.com
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Sega

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Спаcибо. На самом деле сейчас разбираюсь с консольной zint. После некоторого шаманства с формированием файла в UTF-8 вроде всё получается. Нашел также zint.dll и опиcание работы через API. Но я никогда не умел формировать структуры в фоксе, передавать и обрабатывать их. А там это нужно. Если кто подскажет, то с меня пиво.
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
Sega
Нашел также zint.dll и опиcание работы через API. Но я никогда не умел формировать структуры в фоксе, передавать и обрабатывать их. А там это нужно. Если кто подскажет, то с меня пиво.
Ну так dll-ку и доку к ней в студию.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
OlegS
Автор

Сообщений: 36
Откуда: Grodno
Дата регистрации: 28.04.2016
ssa
Sega
Нашел также zint.dll и опиcание работы через API. Но я никогда не умел формировать структуры в фоксе, передавать и обрабатывать их. А там это нужно. Если кто подскажет, то с меня пиво.
Ну так dll-ку и доку к ней в студию.

Так ссылку кидали чуть выше на архив
sourceforge.net
Я так понимаю это то что надо?



Исправлено 1 раз(а). Последнее : OlegS, 17.02.18 22:05
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Sega

Сообщений: 511
Откуда: Ярославль
Дата регистрации: 27.12.2000
Да, всё верно. Ссылка эта. Вот здесь глава про API по-русски для компаненты Ocvita Barcode ActiveX, которая написана на ZInt ocvita.ru.

Что бы быстрее разобраться с кодировкой, то в консольной утилите я делал так:
zint.exe --barcode=58 -i "tmptext.txt" --eci=26

Сам файл "tmptext.txt" должен быть в формате UTF-8:
STRTOFILE(STRCONV('Съешь ещё этих мягких французских булочек, да выпей чаю.|Тest parameter mode=156',9),'tmptext.txt',4) && флаг 4 - пишем в начало файла признак файла UTF-8



Исправлено 1 раз(а). Последнее : Sega, 19.02.18 09:32
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
mercury

Сообщений: 14
Дата регистрации: 04.07.2006
У меня была такая проблема, вышел из положения при помощи qrcode.exe
формирую картинки с QR-кодом и в форму их )
lcFileName=SYS(2023)+'\'+ALLTRIM(STR(lic))+'RQTemp.png'
m_command = 'qrcode.exe -o '+lcFileName+' -s 2 -c "'+STRCONV('ST00012|Name=Организация и т.д. .......'|PayerAddress=Россия, обл.,****|SUM=***',9)+'"'
WshShell.RUN(m_command, 0, .T.)
с zint возникли трудности - не совсем помню какие ))) вроде с кодировкой - почему-то слетала периодически

добавлю )
скачал отсюда fukuchi.org = qrencode-win32 (Microsoft Windows)
моя версия Version 3.2.1



Исправлено 2 раз(а). Последнее : mercury, 20.02.18 13:38
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Dutch

Сообщений: 212
Откуда: Волгодонск
Дата регистрации: 25.10.2010
OlegS
я делал с помощью гугл-сервиса генерацию кода.
www.foxite.com

У меня с ним проблема возникла. Скачивается всегда одна и та же картинка с QR кодом, маленькая какая то. И не читается сканером. Хотя если параметр sURL, передаваемый в эту функцию
URLDownloadToFile (0, sURL, pImagen, 0, 0)
вставить в адресную строку браузера - то QR код отображается на экране корректный и сканируется нормально. Как сделать, что бы скачивался тот файл, который я вижу на экране?
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Victoriacom

Сообщений: 106
Дата регистрации: 08.12.2010
Есть ли у кого-нибудь описание параметров qrcode.exe?
Мне нужно получать картинку в формате DataMatrix.


------------------
Алло, это прачечная? Да, это прачечная. Здравствуйте.




Исправлено 1 раз(а). Последнее : Victoriacom, 16.08.21 14:14
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Каратаев

Сообщений: 3974
Откуда: Алматы
Дата регистрации: 04.12.2001
QR-коды можно делать с любым текстом. Проблем не было...
Есть такая dll-ка quricol32.dll, правда скачивал несколько её вариантов, насколько помню, подбирал, но нашёл беспроблемный.
И вот код:
*!* **********************************************************
*!* * Создание QR-кода
* MyText = REPLICATE("Съешь ещё этих мягких булок и выпей чаю", 50)
* MyText = REPLICATE("Eat this french dogs and drink tea", 80)
MyText = "014001 Алюминиевая фольга - самая надёжная по качеству, проверено!"
DECLARE GeneratePNG IN quricol32.dll STRING @, STRING @, INTEGER, INTEGER, INTEGER
DECLARE SetBackgroundColor IN quricol32.dll INTEGER
DECLARE SetForegroundColor IN quricol32.dll INTEGER
* цветной
SetForegroundColor(RGB(0,0,255))
SetBackgroundColor(RGB(255,255,0))
?GeneratePNG("d:\1.png", MyText, 2, 5, 0)
* чёрно-белый
SetForegroundColor(RGB(0,0,0))
SetBackgroundColor(RGB(255,255,255))
?GeneratePNG("d:\2.png", MyText, 2, 5, 0)
RETURN
Этот QR отлично читается смартфоном. Это тестовый код. В реальности можно сделать, чтобы при считывании QR-кода сразу открывался сайт с нужным товаром. Вот пример реально работающий:
****************************************
* Создание QR-кодов по товарам
****************************************
LPARAMETERS tcArt, tcNameTov, tcBaseUrl
IF PCOUNT() = 2
tcBaseUrl = "https://ddw.kz/"
ENDIF
tcArt = ALLTRIM(tcArt)
tcNameTov = ALLTRIM(tcNameTov)
LOCAL lcUrl, lcPathToQr, lcPngFile
m.lcPathToQr = (ADDBS(goApp.PathWork) + "reports\")
m.lcPngFile = m.lcPathToQr + tcArt + ".png"
m.lcUrl = ret_seo_url(tcArt, tcNameTov, tcBaseUrl)
* Создание QR-кода
* MyText = REPLICATE("Съешь ещё этих мягких булок и выпей чаю", 50)
* MyText = REPLICATE("Eat this french dogs and drink tea", 80)
* MyText = "https://ddw.kz/konteyner-lanch-boks-1s-ya2301000d.html YA2301000D"
DECLARE GeneratePNG IN quricol32.dll STRING @, STRING @, INTEGER, INTEGER, INTEGER
DECLARE SetBackgroundColor IN quricol32.dll INTEGER
DECLARE SetForegroundColor IN quricol32.dll INTEGER
* цветной
*!* SetForegroundColor(RGB(0,0,255))
*!* SetBackgroundColor(RGB(255,255,0))
*!* ?GeneratePNG("C:\Modem\YA2301000D-color.png", m.lcUrl, 2, 5, 0)
* чёрно-белый
SetForegroundColor(RGB(0,0,0))
SetBackgroundColor(RGB(255,255,255))
?GeneratePNG(m.lcPngFile, m.lcUrl, 2, 5, 0)
RETURN m.lcUrl
Правда не всякий сканер смартфона осуществляет такой переход, мы нашли нужное приложение: QR-сканер, называется...

------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Равиль

Сообщений: 6545
Откуда: Уфа
Дата регистрации: 01.08.2003
Каратаев
QR-коды можно делать с любым текстом. Проблем не было...
Есть такая dll-ка quricol32.dll ...

Да, тоже пользуюсь ею, кстати она есть и для 64 bit
Правда не подойдет ему, т.к. формирует QR, а нужно DataMatrix для маркировки (Честный знак)


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: QR код с помощью foxbarcodeqr
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Dutch
OlegS
я делал с помощью гугл-сервиса генерацию кода.
www.foxite.com
У меня с ним проблема возникла. Скачивается всегда одна и та же картинка с QR кодом, маленькая какая то. И не читается сканером. Хотя если параметр sURL, передаваемый в эту функцию
URLDownloadToFile (0, sURL, pImagen, 0, 0)
вставить в адресную строку браузера - то QR код отображается на экране корректный и сканируется нормально. Как сделать, что бы скачивался тот файл, который я вижу на экране?
Вероятно, передать в эту функцию правильный URL. URL отображаемый в адресной строке браузера (и вводимый в неё) и реальный URL используемый при запросе - вполне себе могут отличаться. F12 и смотреть какой запрос на самом деле посылает браузер. Вероятнее всего дело в кодировке параметров запроса.
Ну и URLDownloadToFile сама по себе не очень удобна - она может из кэша данные брать (вряд ли твой случай, т.к. всё же URL будет различаться для каждого запроса).


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 16 kornienko_ru FaustGreen dafni_2004 PaulWist  (Гостей: 12)

© 2000-2024 Fox Club 
Яндекс.Метрика