Читалка QR - штрихкодов v 1.2.1
Новое в версии 1.2.1 от 18.12.2025г.
- Чтение текста из текстовых PDF
- Избыточное сканирование, лучше распознает коды, так же распознает несколько кодов на странице
Примеров чтения штрих-кодов из PDF много, но все они сводятся к нескольким библиотекам или exe файлам, либо дополнительной установке программного обеспечения.
Данная обработка и Native библиотека позволяют прочитать штрих-коды прямо из PDF файла, а затем скопировать нужные страницы PDF в отдельный документ PDF.
Что умеет библиотека:
- Искать QR и штрихкоды на картинке, и в PDF файле;
- Сохранять PDF файл в PNG, JPG, BMP, TGA.
- Удалять страницы из PDF
- Копировать страницы из одного PDF в другой
- Заменять страницы в PDF из другого PDF
- Получает текст из PDF (текстовые PDF)
Возвращает распознанные коды либо в XML либо в JSON формате, для этого используется флаг:
КомпонентВК.ВыводXML = Истина; XML
КомпонентВК.ВыводXML = Ложь; JSON
//в версии 1.1 выводится флаг об ошибке распознавания, а так же сообщение об ошибке
Применение:
- Чтение счетов на оплату с QR кодами.
- Распознавание штрихкодируемых документов и прикрепление их к объектам базы
- Разделка PDF файла
- Склейка PDF файла
- Сохранение PDF в изображениях
- Получение текста из текстовых PDF
Как работает данная обработка:
1. Подключение внешней библиотеки:
ИмяКомпоненты ="ReaderBarcode";
ПолныйПуть = "ReaderBarcode.dll";
Рез = ПодключитьВнешнююКомпоненту(ПолныйПуть, ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
ПрогИД = "AddIn."+ИмяКомпоненты+".ReaderBarcode";
КомпонентВК = Новый(ПрогИД);
2. Выполнение функций библиотеки:
//Вывод в виде XML (структурированной для таблицы значений)
КомпонентВК.ВыводXML = Истина;
//Добавлено в версии 1.2.1+
КомпонентВК.ИзбыточноеСканирование = ИзбыточноеСканирование;
//-
//Задаем переменную для получения результата
Штрихкоды = "";
//Получаем количество страниц в PDF
КоличествоСтраниц = КомпонентВК.ПолучитьКоличествоСтраницPDF(ПолноеИмяФайла);
//Получить штрихкоды с заданной страницы
Результат = КомпонентВК.ПолучитьШтрихкодСоСтраницыPDF(ПолноеИмяФайла, КоличествоСтраниц,
"EAN13,Code128,QRCode", 3, Штрихкоды);
//Получить штрихкоды со всех страниц штрихкод любой кодировки
Результат = КомпонентВК.ПолучитьШтрихкодыИзPDF(ПолноеИмяФайла, "", 3, Штрихкоды);
// Формируем таблицу значений из XML
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Штрихкоды);
ТаблицаЗначенийШтрихкодов = СериализаторXDTO.ПрочитатьXML(ЧтениеXML));
3. Функции библиотеки
КоличествоСтраниц = КомпонентВК.ПолучитьКоличествоСтраницPDF(ПолноеИмяФайла);
ФлагБулево = КомпонентВК.ПолучитьШтрихкодСоСтраницыPDF(ПолноеИмяФайла, КоличествоСтраниц,
"Code128", 3, Штрихкоды);
ФлагБулево = КомпонентВК.ПолучитьШтрихкодыИзPDF(ПолноеИмяФайла, "Code128,QRCode", 3, Штрихкоды);
ФлагБулево = КомпонентВК.ПолучитьШтрихкодИзКартинки(ПолноеИмяФайла, "Code128,QRCode", Штрихкоды);
УдалятьСтраницыВИсходномФайле = Ложь;
//Вызов функции изменен в версии 1.1
//ФлагБулево = КомпонентВК.КопироватьСтраницыВPDF(ПолноеИмяИсходногоФайла, ПолноеИмяФайлаПриемника,
// "1-3", УдалятьСтраницыВИсходномФайле, ТекстРезультата);
//на:
КомпонентВК.КопироватьСтраницыВPDF(ПолноеИмяИсходногоФайла, ПолноеИмяФайлаПриемника, "1-3",
ИндексВставки, УдалятьСтраницыВИсходномФайле, ТекстРезультата);
ФлагБулево = КомпонентВК.УдалитьСтраницыИзPDF(ПолноеИмяФайла, "1,3", ТекстРезультата);
//Добавлены в версии 1.1
ОттенкиСерого = Ложь;
mScale = 3;
КомпонентВК.ЗаменитьСтраницуВPDF(ПолноеИмяИсходногоФайла, ПолноеИмяФайлаПриемника, Страницы,
ИндексВставки, УдалятьСтраницыВИсходномФайле, ТекстРезультата);
КомпонентВК.СохранитьPDFВИзображение(ПолноеИмяИсходногоФайла, ПапкаДляКартинок, "1,3", mScale,
ОттенкиСерого, "JPG", ТекстРезультата);
//Добавлены в версии 1.2.1
КомпонентВК.ПолучитьТекстИзPDF(ПолноеИмяИсходногоФайла, ТекстРезультата);
КомпонентВК.ПолучитьТекстСоСтраницыPDF(ПолноеИмяИсходногоФайла, НомерСтраницы, ТекстРезультата);
4. Какие коды определяет библиотека
Определение кодов напрямую зависит от качества изображения
Aztec ///< Aztec
Codabar ///< Codabar
Code39 ///< Code39
Code93 ///< Code93
Code128 ///< Code128
DataBar ///< GS1 DataBar, formerly known as RSS 14
DataBarExpanded///< GS1 DataBar Expanded, formerly known as RSS EXPANDED
DataMatrix ///< DataMatrix
EAN8 ///< EAN-8
EAN13 ///< EAN-13
ITF ///< ITF (Interleaved Two of Five)
MaxiCode ///< MaxiCode
PDF417 ///< PDF417
QRCode ///< QR Code
UPCA ///< UPC-A
UPCE ///< UPC-E
MicroQRCode ///< Micro QR Code
RMQRCode ///< Rectangular Micro QR Code
DXFilmEdge ///< DX Film Edge Barcode
5. Библиотека работает на следующих компонентах
PDFIUM - https://pdfium.googlesource.com/
Zxing - https://zxing.org/
stb_image - https://cppget.org/
AddInNative - https://its.1c.ru/db/metod8dev/content/3221/hdoc
возможно ошибся со страницами
В архиве находится обработка демонстрирующая возможности (с макетом библиотеки), отдельно библиотека, PDF файл для теста, PNG картинки для теста.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.188.22, 3.0.181.10
- 1С:ERP Управление предприятием 2, релизы 2.5.25.80, 2.5.23.64
Вступайте в нашу телеграмм-группу Инфостарт
