Вопрос или проблема
У меня есть задача разработать приложение, которое сможет сканировать документы и создавать поисковые PDF-файлы, которые можно просматривать из настольного приложения (например, WPF) или веб-браузера. Также требуется возможность сканирования штрих-кода с отсканированного документа.
Требования:
- Сканирование документов
- Создание поисковых PDF-файлов (OCR)
- OCR должен быть доступен без сканирования (например, когда пользователь загружает изображение)
- Предварительный просмотр PDF-файлов и базовая манипуляция (например, переворот страницы вверх дном)
- Сканирование штрих-кодов с отсканированных документов.
- (Опционально, но желательно) Поддержка .NET Core / кроссплатформенность
Прежде чем использовать какие-либо платные библиотеки, я хотел бы сначала узнать, насколько легко это сделать с помощью бесплатных и открытых библиотек.
Судя по немногочисленным исследованиям, я могу использовать следующее для достижения этой цели, но это кажется довольно трудоемким:
- Windows Image Acquisition (WIA) 2.0 для сканирования документов. (Только для Windows)
- Tesseract для OCR и создания PDF-файлов. (Требуется обертка для .NET)
- (Настольное приложение) встроенный веб-браузер для предварительного просмотра PDF-файлов.
Всё вышеперечисленное может работать, но я читал в разных местах, что WIA не всегда хорошо работает с некоторыми сканерами, и будет лучше использовать какую-либо TWAIN SDK для наилучшей поддержки сканеров.
Возможно, тогда лучше использовать какую-либо платную библиотеку, которая, надеюсь, не будет иметь астрономических затрат, такую как LEADTOOLS TWAIN SDK.
Если платные решения — единственный путь, какой был бы лучший выбор для разработчика на .NET Framework / .NET Core?
Отказ от ответственности: я работаю в Syncfusion.
Saraff.Twain.NET — это библиотека с открытым исходным кодом, которую можно использовать для получения изображений со сканера. Syncfusion Essential PDF можно использовать для сохранения изображения в PDF.
Syncfusion Tesseract OPX имеет обертку для движка Tesseract, которая может использоваться для обработки текста в изображениях внутри PDF-документов и наложения на них поискового текста.
//Загрузите PDF-документ
PdfLoadedDocument lDoc = new PdfLoadedDocument("Input.pdf");
//Установите язык OCR для обработки
processor.Settings.Language = Languages.English;
//Обработайте OCR, предоставив PDF-документ и данные Tesseract
processor.PerformOCR(lDoc, @"Tessdata\");
//Сохраните обработанный PDF-документ на диск
lDoc.Save("Sample.pdf");
lDoc.Close(true);
Tesseract OPX бесплатен, но Essential PDF является лицензируемым продуктом. Весь продукт также доступен бесплатно через лицензию для сообщества, если вы соответствуете условиям (до 1 миллиона долларов США дохода). Стоимость лицензии составляет 995 долларов США на одного разработчика.
Syncfusion Essential PDF также включает PDF Viewer, который можно использовать для предварительного просмотра документов.
Essential PDF также интегрируется с открытой библиотекой ZXing для считывания штрих-кодов из PDF-файлов.
Пример
Поддерживаются как .NET Framework, так и .NET Core.
Ответ или решение
Библиотеки .NET для сканирования документов в поисковые PDF с поддержкой штрих-кодов
Разработка приложения для сканирования документов и создания поисковых PDF с возможностью предварительного просмотра на настольных платформах или в веб-браузерах — задача, которая требует комплексного подхода. Либо можно воспользоваться бесплатными библиотеками, либо рассмотреть платные сторонние решения. Рассмотрим оба пути.
Основные требования
- Сканирование документов: Эффективный процесс получения изображений с помощью сканера.
- Создание поисковых PDF: Использование технологии оптического распознавания текста (OCR) для обработки изображений и создания текстово-разметочных PDF.
- Предварительный просмотр и базовая манипуляция с PDF: Возможность переворота страниц, зума и других функций предварительного просмотра.
- Сканирование штрих-кодов: Важно обеспечить поддержку чтения штрих-кодов с отсканированных документов.
- Кросс-платформенная поддержка: Возможность работы в .NET Core для обеспечения совместимости с разными платформами.
Беспокойства о бесплатных решениях
Ваше начальное исследование привело к пониманию, что Windows Image Acquisition (WIA) может не всегда обеспечивать надежное сканирование. Это подтолкнуло вас к идее использования TWAIN SDK, который обеспечивает более широкую совместимость с различными моделями сканеров.
Open Source Решения
-
Saraff.Twain.NET: Это бесплатная библиотека для .NET, позволяющая интегрировать TWAIN функциональность в ваше приложение для сканирования документов. Она подходит для получения изображений с различных сканеров, что является важным аспектом.
-
Tesseract OCR: Популярная библиотека для OCR, которую можно использовать для распознавания текста на изображениях. Однако для работы с Tesseract вам потребуется .NET обертка, например Tesseract .NET.
-
PDF Previewing: Для предварительного просмотра PDF-документов можно использовать встроенный веб-браузер в Windows или сторонние библиотеки, такие как Pdfium.
Платные решения
Если использование открытых библиотек представляется сложным, вы можете рассмотреть платные решения, которые чаще всего предлагают готовую функциональность и лучшее сопровождение.
-
LEADTOOLS TWAIN SDK: Профессиональное решение для работы с TWAIN, предлагающее надежное сканирование и дополнительные функции.
-
Syncfusion Essential PDF: Это мощная библиотека для работы с PDF в .NET, предоставляющая множество функций для обработки, создания и предоставления PDF-документов. Syncfusion предоставляет Community License, что позволяет использовать их продукты бесплатно для компаний с годовым доходом менее 1 миллиона долларов.
-
Syncfusion Tesseract OPX: Обертка для Tesseract, интегрированная в Syncfusion, которая позволяет производить OCR для изображений и автоматически создавать поисковые PDF-файлы.
// Пример кода для обработки OCR с Syncfusion
PdfLoadedDocument lDoc = new PdfLoadedDocument("Input.pdf");
processor.Settings.Language = Languages.English;
processor.PerformOCR(lDoc, @"Tessdata\/");
lDoc.Save("Sample.pdf");
lDoc.Close(true);
- Поддержка штрих-кодов: Syncfusion Essential PDF интегрируется с библиотекой ZXing, что позволяет читать штрих-коды из PDF-документов.
Заключение
Ваш выбор библиотеки зависит от ваших требований и бюджета. Если вы готовы инвестировать время в изучение открытых библиотек, Saraff.Twain.NET и Tesseract могут быть хорошим стартапом. Если же вы предпочитаете более комплексное и поддерживаемое решение, платная библиотека Syncfusion станет отличным выбором, предоставляя расширенные возможности с минимальными временными затратами.
Правильный выбор инструментов и библиотек существенно повлияет на итоговый результат вашего проекта и его производительность.