文档章节

PDF417美国驾照条形码信息自动识别

yushulx
 yushulx
发布于 2015/03/11 10:08
字数 687
阅读 326
收藏 0

使用DWT (Dynamic Web TWAIN) 的2D Barcode插件可以轻松使用JavaScript API读取PDF417二维码信息。这里演示如何在网页中实现一个美国驾照条形码信息自动识别的Web应用。

参考文章:How to Build a Web App to Read PDF417 Barcode with DWT

步骤说明

  1. 扫描或者加载一张美国驾照图片。

  2. 从DWT的native服务进程中获取识别结果。

  3. 在Web客户端获取结果并填充到对应项中。

使用DWT SDK实现Web应用

在Resources目录中放置Barcode.zip和Barcodex64.zip。

创建index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Use Dynamic Web TWAIN to Read Barcode</title>
    <style> 
        #mainWindow {
            width:600px;
            margin:0px auto;
            padding:15px;
            background-color:#eee;
        }
    </style>
    <script type="text/javascript" src="Resources/dynamsoft.webtwain.initiate.js"> </script>
    <script type="text/javascript" src="Resources/dynamsoft.webtwain.config.js"> </script>
</head>
 
<body>
    <div id="mainWindow">
    <H1> Dynamic Web TWAIN - Driver's Licenses</H1>
    <input type="button" value="Scan" onclick="AcquireImage();" />
    <input type="button" value="Load" onclick="LoadImage();" />
    <input type="button" value="Read Driver License" onclick="ReadBarcode();" /> <br/>
 
    First Name: <input type="text" id="FirstName" />
    Last Name: <input type="text" id="LastName"/> <br />
    City: <input type="text" id="City" />
    Address: <input type="text" id="Address" />
    License Number: <input type="text" id="LicenseNumber" /> <br />
    State: <input type="text" id="State" />
    Zip: <input type="text" id="Zip" />
 
    <!-- dwtcontrolContainer is the default div id for Dynamic Web TWAIN control.
         If you need to rename the id, you should also change the id in the dynamsoft.webtwain.config.js accordingly. -->
    <div id="dwtcontrolContainer"></div>
 
    <script type="text/javascript">
        Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady); // Register OnWebTwainReady event. This event fires as soon as Dynamic Web TWAIN is initialized and ready to be used
 
        var DWObject;
        var text;
 
        function Dynamsoft_OnReady() {
            DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); // Get the Dynamic Web TWAIN object that is embeded in the div with id 'dwtcontrolContainer'
 
        }
 
        function AcquireImage() {
            if (DWObject) {
                DWObject.SelectSource();
                DWObject.OpenSource();
                DWObject.IfDisableSourceAfterAcquire = true;    // Scanner source will be disabled/closed automatically after the scan.
                DWObject.AcquireImage();
            }
        }
 
        //Callback functions for async APIs
        function OnSuccess() {
            console.log('successful');
        }
 
        function OnFailure(errorCode, errorString) {
            alert(errorString);
        }
 
        function LoadImage() {
            if (DWObject) {
                DWObject.IfShowFileDialog = true; // Open the system's file dialog to load image
                DWObject.LoadImageEx("", EnumDWT_ImageType.IT_ALL, OnSuccess, OnFailure); // Load images in all supported formats (.bmp, .jpg, .tif, .png, .pdf). OnSuccess or OnFailure will be called after the operation
            }
        }
 
        function GetField(keyword) {
 
            var k = text.search(keyword);
            var n = text.indexOf(":", k);
            var m = text.indexOf("\n", n);
            var subtext = text.substring(n+1, m);
            return subtext;
        }
 
        function GetBarcodeInfo(sImageIndex, result) {//This is the function called when barcode is read successfully
            //Retrieve barcode details
            var count = result.GetCount();
            if (count == 0) {
                alert("The barcode for the selected format is not found.");
                return;
            } else {
                for (i = 0; i < count; i++) {
                    text = result.GetContent(i);
                    var x = result.GetX1(i);
                    var y = result.GetY1(i);
                    var format = result.GetFormat(i);
                    var barcodeText = ("barcode[" + (i + 1) + "]: " + "\n" + text + "\n");
                    //barcodeText += ("format: PDF 417" + "\n");
                    //barcodeText += ("x: " + x + " y:" + y + "\n");
                    //var strBarcodeString = text + "\r\n" + (format == 4 ? "Code 39" : "Code 128");
                    //DWObject.AddText(DWObject.CurrentImageIndexInBuffer, x, y, strBarcodeString, -1, 94700, 0, 1);
                    // alert(barcodeText);   // get driver license info
 
                    alert(text);
                    if (text.search("Given Name") == -1)
                        document.getElementById("FirstName").value = GetField("First Name");
                    else
                        document.getElementById("FirstName").value = GetField("Given Name");
                    document.getElementById("LastName").value = GetField("Last Name");
                    document.getElementById("LicenseNumber").value = GetField("License Number");
                    document.getElementById("State").value = GetField("State");
                    document.getElementById("City").value = GetField("City");
                    document.getElementById("Address").value = GetField("Address");
                    document.getElementById("Zip").value = GetField("Zip");
 
                }
            }
        }
 
        function ReadBarcode() {
 
            if (DWObject) {
                if (DWObject.Addon.Barcode.GetLocalVersion() == "9, 6, 2, 303") {
                    if (DWObject.HowManyImagesInBuffer == 0) {
                        alert("Please scan or load an image first.");
                        return;
                    }
 
                    result = DWObject.Addon.Barcode.Read(
                            DWObject.CurrentImageIndexInBuffer, 1024, GetBarcodeInfo, OnFailure);
                }
                else {
                    DWObject.Addon.Barcode.Download("\\Resources\\Barcode.zip",ReadBarcode,OnFailure);
                }
            }
        }
    </script>
    </div>
</body>
</html>
 

把整个工程部署到server就可以运行测试了。

视频


源码

https://github.com/DynamsoftRD/pdf417-barcode-reader

git clone https://github.com/DynamsoftRD/pdf417-barcode-reader.git


本文转载自:http://www.codepool.biz/barcode/how-to-build-a-web-app-to-read-pdf417-barcode-with-dwt.html

yushulx
粉丝 29
博文 111
码字总数 62988
作品 0
杭州
私信 提问
常用的条形码类型以及如何选择条码类型、条形码字体和条形码控件

条形码是什么? 条形码是由一组按一定编码规则排列的条,空符号,用以表示一定的字符、数字及符号组成的信息。 条形码分为一维码和二维码两种。一维码比较常用,如日常商品外包装上的条形码就...

flyingsnail
2014/05/04
10.2K
0
Aspose.BarCode已修复关于PDF417条码识别和生成的各种问题条码控件网

Aspose.BarCode是由Aspose Pty Ltd所开发的一款功能强大,且稳健的条形码生成和条码识别组件,其使用托管的C#编写,能帮助开发者快速简便的向其Microsoft应用程序(WinForms, ASP.NET 和.NE...

yidongkaifa
2014/08/18
183
0
识别生成条形码--Spire.Barcode

条形码生成和识别的.NET控件。支持40多种条形码,1D和2D的条形码生成和识别。可将生成的条形码形成EMF,BITMAP,JPG,GIF 等格式。 http://www.e-iceblue.com/Introduce/barcode-for-net-intro...

NickSang
2013/12/09
2.1K
0
专业的条形码读写控件VintaSoftBarcode.NET SDK

http://www.fanganwang.com/product/1473 VintaSoftBarcode.NET SDK是专业的.NET条形码阅读器和条码生成器控件,可以嵌入到你开发的软件中。它可以读写数字图形和PDF中的的一维和二维条码。 ...

baobiaokongjian
2014/06/09
92
0
jor的screenshot

可视化的数据结构 可视化的数据结构和布局,更容易上手 页内钻取 超强的分析功能,支持页内导航,下钻,上卷,维度任意可选 主从报表 套打报表 标签报表 分栏报表 计算比去年增长数 计算比去...

joe123
2011/08/05
473
1

没有更多内容

加载失败,请刷新页面

加载更多

JDBC+C3P0+DBCP 基本使用

1.概述 这篇文章主要说了JDBC的基本使用,包括Statement,PreparedStatement,JDBC的连接,Mysql创建用户创建数据表,C3P0的连接与配置,DBCP的连接与配置. 2.mysql的处理 这里的JDBC使用Mysql作为...

Blueeeeeee
今天
7
0
MVC Linux下开发及部署

linux使用的是 Ubuntu 64 位 18.04.2 LTS 首先复制C:\Program Files (x86)\Embarcadero\Studio\20.0\PAServer 下 LinuxPAServer20.0.tar.gz 到 linux 目录下 运行链接编译程序 delphi环境配置......

苏兴迎
今天
11
0
3.控件及其属性

1.文本 2.按钮

横着走的螃蟹
今天
9
0
安装Genymotion模拟器慢的解决方案

第一步点击下载, C:\Users\Administrator\AppData\Local\Genymobile\genymotion.log 中搜索 ova 会发现这个文件 使用迅雷下载即可. 在 虚拟机中导入这个.ova 文件 即可安装...

chenhongjiang
今天
6
0
4. 彤哥说netty系列之Java NIO实现群聊(自己跟自己聊上瘾了)

你好,我是彤哥,本篇是netty系列的第四篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 上一章我们一起学习了Java中的BIO/NIO/AIO的故事,本章将带着大家一起使用纯纯的N...

彤哥读源码
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部