30.11.2009, 08:21 | #1 |
Участник
|
Axapta и PDF417
Добрый день!
Возникла необходимость использования штрих-кода PDF417. Не подскажите есть ли готовое решение, позволяющее печатать такие штрих-кода, или придеться искать dll? |
|
28.02.2011, 16:01 | #2 |
Участник
|
Добрый день.
Подниму тему. Какие dll можно использовать при печати двумерного штрих-кода в Аксапте? И как сделать отчет в Аксапте (report) содержащий двумерный штрих-код? |
|
28.02.2011, 16:12 | #3 |
Модератор
|
ActiveBarcode.DAX поддерживает Active X компоненты, так что просто поищите бесплатные для печати ШК. Большинство подобных компонент поддерживает и 2х мерники.
С Уважением, Георгий |
|
|
За это сообщение автора поблагодарили: andrewK (1). |
28.02.2011, 17:12 | #4 |
Участник
|
Двухмерный код
Если по-модному, по-современному - то надо QR-code использовать.
Вот ссылка на либу http://www.codeproject.com/KB/cs/qrcode.aspx. Когда-то с ней ковырялся, но потом не пригодилось. Может кому пригодится. |
|
|
За это сообщение автора поблагодарили: andrewK (1). |
01.03.2011, 07:12 | #5 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: andrewK (1). |
01.03.2011, 12:50 | #6 |
Участник
|
Я правильно понимаю, что механизм печати идентичен печати одномерного кода?
Вначале строка преобразуется в набор символов, а затем с помощью шрифтов отображается в виде двумерного штрих-кода? |
|
01.03.2011, 13:10 | #7 |
Модератор
|
Есть несколько механизмов. Без контрольной цифры - можно печатать хоть шрифтом (например Code39). Как только нужно рассчитывать контрольную сумму - все, ActiveX.
В последнем случае, с помощью компоненты все равно, что печатать - EAN 13 или PDF417. Только одно но: EAN13 может быть фиксирован по ширине, а вот размеры I2/5, Code XX, и PDF417 зависят от кол-ва информации. С Уважением, Георгий |
|
21.04.2011, 10:59 | #8 |
Участник
|
Чем закончились изыскания...
Решил использовать штрих-код 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 | #9 |
Британский учённый
|
По теме, нашел свободный проект 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 | #10 |
Участник
|
Вот ещё в догонку пара ссылок:
http://strokescribe.com - недорогой компонент от русскоязычного разработчика www.barcodetools.com - одномерные штрихкоды можно получить из консольного приложения в виде картинки и просто обрезать ту область, где идёт надпись "демо". Полезно,например, для вставки штрихкода в Excel в виде картинки, если у конечного пользователя файла не установлены нужные шрифты. |
|
18.01.2013, 15:08 | #11 |
Участник
|
Цитата:
1)Прикручиваем dll к \References. 2)Компилируем проект. 3)Запускаем отчет. Сборка сделана на C#.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
За это сообщение автора поблагодарили: perestoronin (1), jonny (4), IvanS (1), someOne (5). |
15.06.2013, 10:07 | #12 |
Участник
|
Цитата:
Но есть одна проблема. Чтобы не устанавливать этот компонент на каждое клиенское рабочее место сделал исполнение кода класса на сервере. Но так как класс 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). |
21.02.2014, 14:14 | #13 |
Участник
|
Библиотека хорошая. Только с кириллицей как её подружить?
|
|
24.02.2014, 09:45 | #14 |
Участник
|
Извиняюсь за повторно заданный вопрос, но всё же...Кто как выводить текст с кириллицей? Эта библиотека выводит не пойми что. Менял кодировку и на Ascii и на UTF8, толку нет. В 8-мом rollap-е появилась возможность выводить стандартными средствами QR код. но опять таки без кириллицы. Кто как выходит из ситуации?
|
|
24.02.2014, 12:05 | #15 |
Модератор
|
Насколько я помню, 417 ранее кодировал только 127 символов. Куда там кириллицу?
С Уважением, Георгий |
|
24.02.2014, 13:07 | #16 |
Участник
|
Возможно Вы правы, но сейчас в различных генераторах QR кодов я без особых проблем зашивал русские тексты. И что не мене важно без проблем считывал.
|
|
26.02.2014, 16:20 | #17 |
Участник
|
Надо подправить немного исходники длл-ки,и сделать новую длл-ку, мой коллега это делал, но где у него они остались надо поискать.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
26.02.2014, 16:59 | #18 |
Участник
|
|
|
26.02.2014, 17:01 | #19 |
Участник
|
Я попробую, выйду на работу только в понедельник. Сейчас в отпуске.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
08.05.2014, 09:51 | #20 |
Участник
|
Доброе утро. К сожалению руки все никак не доходили. У коллеги на компьютере не удалось найти. Вот переделанная dll на Unicode. Правда надо отметить, что количество символов кодируемого текста будет влиять на результат выполнения. Слишком длинные тексты при простых параметрах кодироваться не будут. Для этого надо поиграться этими параметрами по умолчанию (в методе setParmDefault()), а именно Version и ErrorCorrect. При длинных текстах Версию надо увеличивать, а Степень защищенности уменьшать.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
За это сообщение автора поблагодарили: raniel (1), kit22 (1). |
Теги |
штрихкод |
|
|