|
21.04.2011, 10:59 | #1 |
Участник
|
Чем закончились изыскания...
Решил использовать штрих-код PDF417. С QRCode не стал связываться, т.к. он формируется картинкой, а я не представляю как использовать картинки со штрих-кодом в отчетах Аксапты (именно встроенных отчетах Report). Здесь нашел dll-ку, которая работает без 1С. У нее только один метод pdf417(_Chaine, _secu, _nbcol, _CodeErr), который возвращает закодированную информацию. Затем для закодированного текста применяем шрифт PDF417 (см. вложение). DLL-ку можно "прикрутить" в Аксапту с помощью мастера интерфейсных классов для объектов COM (COM Class Wrapper Wizard). И затем получившимся классом пользоваться для кодирования текста и помещения его в отчеты. |
|
|
За это сообщение автора поблагодарили: Vadik (1), George Nordic (5), AvrDen (1). |
18.12.2012, 12:31 | #2 |
Британский учённый
|
По теме, нашел свободный проект http://zint.github.com/
Есть командная строка, много опций, пакетная работа из файла, установщик и справка. Генерирует баркод в png нужного размера. Написан на С под VS, можно использовать в собственных разработках, там каждый код идет отдельным файлом. Для одного PDF417 может и слишком будет, но если нужна поддержка разных 2D штрихкодов - то что нужно. Поддержка кодов: PHP код:
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: perestoronin (1), virhundo (1), mnt_dx (2). |
19.12.2012, 10:45 | #3 |
Участник
|
Вот ещё в догонку пара ссылок:
http://strokescribe.com - недорогой компонент от русскоязычного разработчика www.barcodetools.com - одномерные штрихкоды можно получить из консольного приложения в виде картинки и просто обрезать ту область, где идёт надпись "демо". Полезно,например, для вставки штрихкода в Excel в виде картинки, если у конечного пользователя файла не установлены нужные шрифты. |
|
18.01.2013, 15:08 | #4 |
Участник
|
Цитата:
1)Прикручиваем dll к \References. 2)Компилируем проект. 3)Запускаем отчет. Сборка сделана на C#.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
За это сообщение автора поблагодарили: perestoronin (1), jonny (4), IvanS (1), someOne (5). |
15.06.2013, 10:07 | #5 |
Участник
|
Цитата:
Но есть одна проблема. Чтобы не устанавливать этот компонент на каждое клиенское рабочее место сделал исполнение кода класса на сервере. Но так как класс Image работает только на клиенте, получить картинку с qr кодом в виде Аксаптовского е container оказалось не просто. Сохранять картинку в виде временного файла, а затем читать его - не совсем производительное решение. В итоге решение навеяло одна из последних тем форума. Привожу код - может кому пригодится. На выходе имеем container, который можно использовать для вывода картинок с qr кодом в любые отчеты Аксапта. X++: static container encode(str _encoding) { System.IO.MemoryStream memoryStream; System.Drawing.Bitmap bitmap; container ret; str tmpBuffer; int encodeMode = 2; int scale =2; int version = 4; int errorCorrect = 3; ThoughtWorks.QRCode.Codec.QRCodeEncoder qrCodeEncoder; ; if (!_encoding) throw error('Нет данных для кодирования!'); new InteropPermission(InteropKind::ClrInterop).assert(); qrCodeEncoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder(); try { qrCodeEncoder.set_QRCodeEncodeMode(EncodeMode); qrCodeEncoder.set_QRCodeScale(Scale); qrCodeEncoder.set_QRCodeVersion(Version); qrCodeEncoder.set_QRCodeErrorCorrect(ErrorCorrect); bitmap = QRCodeEncoder.Encode(_encoding); memoryStream = new System.IO.MemoryStream(); bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat::get_Bmp()); tmpBuffer = CLRInterop::staticInvoke("System.Convert", "ToBase64String", memoryStream.GetBuffer()); ret = binData::loadFromBase64(tmpBuffer); bitmap.Dispose(); memoryStream.Close(); memoryStream.Dispose(); } catch (Exception::CLRError) { throw error(AifUtil::getClrErrorMessage()); } return ret; } |
|
|
За это сообщение автора поблагодарили: Pustik (3), jonny (4). |
Теги |
штрихкод |
|
|