Цифровое LEADTOOLS разработки изображения, как использовать данные штрих-коду интеллектуального захвата LEADTOOLS, извлеченные из отсканированного документа

LEADTOOLS (Lead Technology) была создана Моу Daher и Рич Литтл в 1990 году, со штаб-квартирой в городе Шарлотт, штат Северная Каролина. LEAD является создание г Даера на рынке цифровых технологий сжатия изображения в области изобретения ориентированного. В ходе развития в 29 лет, ПРИВЕСТИ свое владение в основных странах мира лидерство на рынке в области цифровых инструментов разработки изображения стало признанным мировым лидером. Разработка и релиз LEADTOOLS LEAD является разработка комплекта наград.

Штрих-код LEADTOOLS Pro содержит проявитель для обнаружения, чтения и записи более 100 различных типов штрих-кодов и подтипа 1D и 2D, таких как UPC, EAN, Code 128, QR-код, матрица данных и PDF417 и так далее. По сравнению с другими аналогичными видами технологий визуализации штрих-кодов на рынке, LEADTOOLS Barcode Pro является лучшим.

Интеллектуальный захват может означать несколько различных способов, чтобы захватить данные изображения или документа. В этой статье мы рассмотрим, как разумно захватить штрих-коды из отсканированных документов. LEADTOOLS TWAIN SDK и штрих-кодов SDK, разработчики могут легко использовать его для создания физических приложений для сканирования документов, а также для захвата и извлечения какой-либо штрих-код, найденный в базе данных.

AIIM Недавний опрос показал, что 32% респондентов используют технологию смарт захвата для извлечения штрих-кодов из PDF и других цифровых документов. Сказав это, давайте создадим приложение .NET на рабочем столе, он распознает отсканированное изображение штрих-кода. Для каждого штрих-код найден, мы будем извлекать данные, а затем сохранить данные в текстовый файл, а отсканированный документ в формате PDF.

Это приложение будет использовать только три кнопки. Сохранение PDF для выбора и выходного каталога TXT, для выбора сканера для сканирования, для выполнения другого сканирования и распознать штрих-код.

SelectDir_Click

// Изменение выходного каталога с 
помощью (FolderBrowserDialog DLG = новый FolderBrowserDialog ()) 
{ 
    dlg.ShowNewFolderButton = истина; 
    если (dlg.ShowDialog (это) == DialogResult.OK) 
        _outputDirectory = System.IO.Path.GetFullPath (dlg.SelectedPath); 
}

ScannerSelect_Click

// Выбираем сканер для использования 
_twainSession.SelectSource (NULL);

Scan_Read_Click

// Сканирование новой страницы (ы) 
_twainSession.Acquire (TwainUserInterfaceFlags.Show);

Теперь добавьте следующие переменные.

частный статический BarcodeEngine двигатель = новый BarcodeEngine (); 
частный статический читатель BarcodeReader = engine.Reader; 

// двойка сессия 
частных статических TwainSession _twainSession; 

// Каталог вывода для сохранения PDF - файлов 
личное статические строки _outputDirectory; 

// Команда обработки изображений , мы собираемся использовать для очистки отсканированных изображений 
частного статического списка <RasterCommand> _imageProcessingCommands; 

частный статические INT _scanCount; 
частный статический StringBuilder С.Б.;

В Form1_Load, добавьте код, чтобы установить лицензию, инициализировать новый сеанс Твена, подписаться TwainSession.Acquire событие, а затем инициализировать любую команду обработки изображений.

RasterSupport.SetLicense(@"", "");

_twainSession = new TwainSession();
_twainSession.Startup(this.Handle, "My Company",
	"My Product",
	"My Version",
	"My Application",
	TwainStartupFlags.None);

_twainSession.AcquirePage += new EventHandler<TwainAcquirePageEventArgs>(_twainSession_AcquirePage);

// Add as many as you like, here we will add Deskew and Despeckle
_imageProcessingCommands = new List<RasterCommand>();
_imageProcessingCommands.Add(new DeskewCommand());
_imageProcessingCommands.Add(new DespeckleCommand());

在Form1_FormClosed中,结束TWAIN会话。

// End the twain session
_twainSession.Shutdown();

最后添加Twain获取句柄的代码。

private void _twainSession_AcquirePage(object sender, TwainAcquirePageEventArgs e)
{
    _scanCount++;

    // We have a page
    RasterImage image = e.Image;

    // First, run the image processing commands on it
    foreach (RasterCommand command in _imageProcessingCommands)
    {
        command.Run(image);
    }

    // Read all the barcodes in this image
    BarcodeData[] barcodes = reader.ReadBarcodes(e.Image, LeadRect.Empty, 0, null);

    // Print out the barcodes we found
    sb = new StringBuilder();
    sb.AppendLine($"Contains {barcodes.Length} barcodes");
    for (int i = 0; i < barcodes.Length; i++)
    {
        BarcodeData barcode = barcodes[i];
        sb.AppendLine($"  {i + 1} - {barcode.Symbology} - {barcode.Value}");
    }

    // Save string builder to a text file
    System.IO.File.WriteAllText($@"{_outputDirectory}\barcodes{_scanCount}.txt", sb.ToString());

    // Save image as PDF
    using (RasterCodecs codecs = new RasterCodecs())
    {
        codecs.Save(e.Image,
        	$@"{_outputDirectory}\ScannedImage{_scanCount}.pdf",
        	RasterImageFormat.RasPdf, 0);
    }
}


рекомендация

отblog.51cto.com/14467432/2432720