Введение
Распознавание и верификация электронных счетов-фактур (PDF).
В настоящее время поддерживается только обычный счёт-фактура, что недостаточно для использования в производственной среде. Если вы хотите анализировать другие типы счетов-фактур, вы можете исследовать самостоятельно или создать обсуждение в разделе issues.
Код использует интерфейс верификации apilink (0,1–0,2 юаня за раз, довольно дорого).
Также есть платные интерфейсы на таких платформах, как Alibaba Cloud Market и Le Shu Net. Цены и стабильность трудно оценить.
Через верификацию кода, а затем вызов интерфейса запроса на официальном сайте Государственной налоговой администрации, будет много проблем. Давайте изучим это позже.
Онлайн-верификаторы имеют относительно высокую точность распознавания, цены составляют около 20 000 юаней (исходный код + обученная модель).
Принцип распознавания:
Использование pdfbox для извлечения текстового содержимого PDF и сопоставления частичных атрибутов с помощью регулярных выражений.
Первый шаг не может получить всю полезную информацию об атрибутах. Используя ключевые слова, получаем информацию о местоположении, используем область PDF для чтения, а затем дополнительно сопоставляем регулярные выражения для получения других полезных атрибутных данных.
Специальное примечание:
Этот проект основан на коде распознавания из проекта einvoice от fantasyxxj на GitHub. Спасибо за основу.
Архитектура программного обеспечения:
Springboot
Pdfbox
Руководство по установке:
Можно импортировать из git в IDE.
Использование:
См. демонстрацию электронного счёта-фактуры.
Эффект:
Планы на будущее:
— Онлайн-просмотр PDF и экспорт через шаблоны; — Разбор и массовая печать счетов-фактур; — Автоматическое чтение счетов-фактур из электронной почты.
Эти функции уже реализованы и используются в проекте, но ещё не опубликованы. При необходимости можно связаться для обсуждения.
Сложные моменты: распознавание кодов верификации, алгоритм генерации секретного ключа для интерфейса (часто меняется), анти-краулинговые технологии (например, чёрный список IP-адресов) и т. д.
Журнал обновлений:
2020-11-18 Добавлена онлайн-демонстрация просмотра PDF и OFD файлов. После запуска службы посетите главную страницу: http://localhost:9088/. Для реализации обратитесь к исходному коду.
Для предварительного просмотра PDF используется pdf.js. Исходный код можно найти на GitHub, выполнив поиск по этому открытому проекту.
Предварительный просмотр OFD использует ofd.js. Исходный код также можно найти на GitHub через поиск по проекту. Обратите внимание, что этот проект использует Vue, и я не очень хорошо знаком с ним. Я немного изменил его после публикации, чтобы использовать в обычном HTML-проекте. Для получения дополнительной информации о том, как использовать OFD для преобразования в PDF, см. реализацию исходного проекта.
2021-12-04 Недавно государство начало продвигать электронные счета-фактуры, и бумажные счета постепенно заменяются электронными, например, счета за питание, оплату бензина и дорожные сборы.
Открытый исходный код можно использовать для обучения или в качестве примера, но он не подходит для производственных сред. Существуют проблемы с анализом различных типов файлов:
OFD формат — самый простой, просто распакуйте и прочитайте данные.
PDF формат — зависит от того, кто выдаёт счёт. Большинство счетов могут быть проанализированы с использованием кода в этом проекте, но некоторые счета имеют нестандартный текстовый формат, что затрудняет анализ. В таких случаях требуется индивидуальная оптимизация кода.
Однако существует один тип счетов, который трудно обработать, например, «комплексные» счета, созданные с использованием шаблонов. Жёлтые тексты являются шаблонами и не могут быть обработаны с помощью текущей программы. Только чёрные тексты, заполненные вручную, могут быть распознаны. На данный момент нет хорошего решения, кроме преобразования всего счёта в изображение и использования OCR для распознавания изображений.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )