未找到

未发布 条码控件Dynamsoft Barcode Reader教程:从PDF417驾驶执照中提取数据
by Harriet666 keys 分享 1499929296192
根据AAMVA卡的设计标准,PDF417二维条码符号系统是符合驾驶执照/识别文件必须存在的最低强制性机读技术。条形码编码关于持卡人的关键信息,包括姓名、出生日期、性别、眼睛颜色、身高等等。
 
从驾驶执照中提取数据有两种方法。我们可以使用OCR技术识别ID上打印的字符。或者,我们可以使用条形码识别技术对PDF417符号系统进行解码,然后将其解析为可读的格式。一般来说,后者比前者更准确,性价比更高。
 
本文将讨论如何使用Dynamsoft Barcode Reader SDK从驾驶执照中提取文本。
 
Dynamsoft Barcode Reader最新版下载>>>

在线演示

要了解这是如何进行的,你可以尝试在线演示 - 查看驾驶执照的PDF417条码
 
请注意,此演示还提供文档扫描,由Dynamsoft Web TWAIN SDK提供支持。

如何从PDF417驾驶执照中提取数据

步骤1.检测并解码PDF417代码
var barcodeImage = DWObject.GetImageURL(index, -1, -1);
dbrObject.readURLAsync(barcodeImage,
    index,
    GetBarcodeInfo,
    OnBarcodeReadFailure);
function OnBarcodeReadFailure(sImageIndex, errorCode, errorString) {
    console.log(errorString);
}
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++) {
            Barcode_text = result.get(i).text;
            var x = result.get(i).x1;
            var y = result.get(i).y1;
            var format = result.get(i).formatString;
            var barcodeText = ("barcode[" + (i + 1) + "]: " + "\n" + Barcode_text + "\n");
            extractInformation();
        }
    }
}
 
步骤2.将其解析成可读的格式
driverLicenseFields = [
        { 'abbreviation': 'DAA', 'description': 'Full Name' }
        , { 'abbreviation': 'DAB', 'description': 'Last Name' }
        , { 'abbreviation': 'DAB', 'description': 'Family Name' }
        , { 'abbreviation': 'DAC', 'description': 'First Name' }
        , { 'abbreviation': 'DAC', 'description': 'Given Name' }
        , { 'abbreviation': 'DAD', 'description': 'Middle Name or Initial' }
        , { 'abbreviation': 'DAD', 'description': 'Middle Name' }
        , { 'abbreviation': 'DAE', 'description': 'Name Suffix' }
        , { 'abbreviation': 'DAF', 'description': 'Name Prefix' }
        , { 'abbreviation': 'DAG', 'description': 'Mailing Street Address1' }
        , { 'abbreviation': 'DAH', 'description': 'Mailing Street Address2' }
        , { 'abbreviation': 'DAI', 'description': 'Mailing City' }
        , { 'abbreviation': 'DAJ', 'description': 'Mailing Jurisdiction Code' }
        , { 'abbreviation': 'DAK', 'description': 'Mailing Postal Code' }
        , { 'abbreviation': 'DAL', 'description': 'Residence Street Address1' }
        , { 'abbreviation': 'DAM', 'description': 'Residence Street Address2' }
        , { 'abbreviation': 'DAN', 'description': 'Residence City' }
        , { 'abbreviation': 'DAO', 'description': 'Residence Jurisdiction Code' }
        , { 'abbreviation': 'DAP', 'description': 'Residence Postal Code' }
        , { 'abbreviation': 'DAQ', 'description': 'License or ID Number' }
        , { 'abbreviation': 'DAR', 'description': 'License Classification Code' }
        , { 'abbreviation': 'DAS', 'description': 'License Restriction Code' }
        , { 'abbreviation': 'DAT', 'description': 'License Endorsements Code' }
        , { 'abbreviation': 'DAU', 'description': 'Height in FT_IN' }
        , { 'abbreviation': 'DAV', 'description': 'Height in CM' }
        , { 'abbreviation': 'DAW', 'description': 'Weight in LBS' }
        , { 'abbreviation': 'DAX', 'description': 'Weight in KG' }
        , { 'abbreviation': 'DAY', 'description': 'Eye Color' }
        , { 'abbreviation': 'DAZ', 'description': 'Hair Color' }
        , { 'abbreviation': 'DBA', 'description': 'License Expiration Date' }
        , { 'abbreviation': 'DBB', 'description': 'Date of Birth' }
        , { 'abbreviation': 'DBC', 'description': 'Sex' }
        , { 'abbreviation': 'DBD', 'description': 'License or ID Document Issue Date' }
        , { 'abbreviation': 'DBE', 'description': 'Issue Timestamp' }
        , { 'abbreviation': 'DBF', 'description': 'Number of Duplicates' }
        , { 'abbreviation': 'DBG', 'description': 'Medical Indicator Codes' }
        , { 'abbreviation': 'DBH', 'description': 'Organ Donor' }
        , { 'abbreviation': 'DBI', 'description': 'Non-Resident Indicator' }
        , { 'abbreviation': 'DBJ', 'description': 'Unique Customer Identifier' }
        , { 'abbreviation': 'DBK', 'description': 'Social Security Number' }
        , { 'abbreviation': 'DBL', 'description': 'Date Of Birth' }
        , { 'abbreviation': 'DBM', 'description': 'Social Security Number' }
        , { 'abbreviation': 'DBN', 'description': 'Full Name' }
        , { 'abbreviation': 'DBO', 'description': 'Last Name' }
        , { 'abbreviation': 'DBO', 'description': 'Family Name' }
        , { 'abbreviation': 'DBP', 'description': 'First Name' }
        , { 'abbreviation': 'DBP', 'description': 'Given Name' }
        , { 'abbreviation': 'DBQ', 'description': 'Middle Name' }
        , { 'abbreviation': 'DBQ', 'description': 'Middle Name or Initial' }
        , { 'abbreviation': 'DBR', 'description': 'Suffix' }
        , { 'abbreviation': 'DBS', 'description': 'Prefix' }
        , { 'abbreviation': 'DCA', 'description': 'Virginia Specific Class' }
        , { 'abbreviation': 'DCB', 'description': 'Virginia Specific Restrictions' }
        , { 'abbreviation': 'DCD', 'description': 'Virginia Specific Endorsements' }
        , { 'abbreviation': 'DCE', 'description': 'Physical Description Weight Range' }
        , { 'abbreviation': 'DCF', 'description': 'Document Discriminator' }
        , { 'abbreviation': 'DCG', 'description': 'Country territory of issuance' }
        , { 'abbreviation': 'DCH', 'description': 'Federal Commercial Vehicle Codes' }
        , { 'abbreviation': 'DCI', 'description': 'Place of birth' }
        , { 'abbreviation': 'DCJ', 'description': 'Audit information' }
        , { 'abbreviation': 'DCK', 'description': 'Inventory Control Number' }
        , { 'abbreviation': 'DCL', 'description': 'Race Ethnicity' }
        , { 'abbreviation': 'DCM', 'description': 'Standard vehicle classification' }
        , { 'abbreviation': 'DCN', 'description': 'Standard endorsement code' }
        , { 'abbreviation': 'DCO', 'description': 'Standard restriction code' }
        , { 'abbreviation': 'DCP', 'description': 'Jurisdiction specific vehicle classification description' }
        , { 'abbreviation': 'DCQ', 'description': 'Jurisdiction-specific' }
        , { 'abbreviation': 'DCR', 'description': 'Jurisdiction specific restriction code description' }
        , { 'abbreviation': 'DCS', 'description': 'Family Name' }
        , { 'abbreviation': 'DCS', 'description': 'Last Name' }
        , { 'abbreviation': 'DCT', 'description': 'Given Name' }
        , { 'abbreviation': 'DCT', 'description': 'First Name' }
        , { 'abbreviation': 'DCU', 'description': 'Suffix' }
        , { 'abbreviation': 'DDA', 'description': 'Compliance Type' }
        , { 'abbreviation': 'DDB', 'description': 'Card Revision Date' }
        , { 'abbreviation': 'DDC', 'description': 'HazMat Endorsement Expiry Date' }
        , { 'abbreviation': 'DDD', 'description': 'Limited Duration Document Indicator' }
        , { 'abbreviation': 'DDE', 'description': 'Family Name Truncation' }
        , { 'abbreviation': 'DDF', 'description': 'First Names Truncation' }
        , { 'abbreviation': 'DDG', 'description': 'Middle Names Truncation' }
        , { 'abbreviation': 'DDH', 'description': 'Under 18 Until' }
        , { 'abbreviation': 'DDI', 'description': 'Under 19 Until' }
        , { 'abbreviation': 'DDJ', 'description': 'Under 21 Until' }
        , { 'abbreviation': 'DDK', 'description': 'Organ Donor Indicator' }
        , { 'abbreviation': 'DDL', 'description': 'Veteran Indicator' }
        , { 'abbreviation': 'PAA', 'description': 'Permit Classification Code' }
        , { 'abbreviation': 'PAB', 'description': 'Permit Expiration Date' }
        , { 'abbreviation': 'PAC', 'description': 'Permit Identifier' }
        , { 'abbreviation': 'PAD', 'description': 'Permit IssueDate' }
        , { 'abbreviation': 'PAE', 'description': 'Permit Restriction Code' }
        , { 'abbreviation': 'PAF', 'description': 'Permit Endorsement Code' }
        , { 'abbreviation': 'ZVA', 'description': 'Court Restriction Code' }
    ]
未发布 Web集成工具Thinfinity® VirtualUI™ v2.0发布丨附下载
by Harriet666 keys 分享 1502269565469
Cybele Software,Inc.发布Thinfinity VirtualUI v2.0版。该产品让开发Windows桌面环境的应用程序变得更加容易、快速和实惠。使用Thinfinity VirtualUI,可以将现有源代码添加一行,以便通过任何操作系统和任何设备上运行的任何HTML5客户端都可以使用虚拟化GUI。
 
传统的桌面到网络转换过程需要大量的时间和金钱投入,并且需要执行大量的重新编码。这迫使许多公司和开发商将这一昂贵的转型搁置下来。但是,这也意味着他们会丢失无数潜在的用户。
 
许多开发人员希望他们的桌面平台移动到网络上。在两个平台Windows 和 HTML5上无需两倍工作量。使用Thinfinity VirtualUI就不用维护多个源代码版本。附加的Thinfinity VirtualUI代码不会影响在Window环境中运行的应用程序。
 
Thinfinity VirtualUI v2.0最新版下载>>>

Thinfinity VirtualUI v2.0中的新功能 


  • 增强最终用户访问架构,允许以以下一种或多种方法进行匿名或身份验证的访问:Windows登录、OAuth/2、RADIUS或使用Thinfinity Authentication API的自定义身份验证方法。
  • 文件系统和注册表虚拟化帮助开发人员为每个最终用户创建安全、受控和独立的环境,映射或仅公开相关应用程序文件夹和注册表项。
  • 会话记录/播放以保存应用程序会话并稍后重播。会话记录有许多场景:复制问题、应用演示和教程、技术支持、审计监控、电子学习等。
通过增加这些功能,Thinfinity VirtualUI v2.0实现了独特的虚拟化和集成级别。
 

要求:


  • Thinfinity VirtualUI与.NET、Delphi、C ++和支持Win32 GDI/GDI + API和ActiveX/COM接口的任何编程语言集成。
  • 所需硬件包括运行Windows 8或更高版本(32位/64位)或Server 2012的网关服务器和运行Windows 8或更高版本(32位/64位)或Server 2012的一个或多个服务器。
  • 客户端设备需要符合HTML5标准的Web浏览器,例如IE10 / 11、Chrome、Safari或Firefox。
未发布 GIS软件开发工具包TatukGIS Developer Kernel 发布 v11.3.0-Unstable1丨附下载
by Harriet666 keys 分享 1489124965641
TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。

TatukGIS Developer Kernel更新至v11.3.0-Unstable1。Delphi、.NET、ActiveX和ASP.NET版本现已合并,此次更新皆适用于以上版本。

【最新TatukGIS Developer Kernel点击下载>>>】

未发布 2017年四大网络安全趋势
by Harriet666 keys 分享 1501573895591
网络攻击在2016年创下了纪录,在2017年网络环境将更加危险。以下是2017年网络安全的4个趋势。

不断变化的勒索软件

随着越来越多的数据存储在移动设备上,勒索软件在网络犯罪分子中非常受欢迎。这是一个有利可图的加密内容的漏洞,除非支付赎金,否则无法恢复。现在勒索软件越来越复杂,并且定位到任何设备。在夏季DEFCON会议上,Pen Test Partners的研究人员证明了攻击者如何控制互联网连接的恒温器并进行锁定,直到受害者接受赎金要求为止。
另一个新的趋势:网络犯罪分子目标通常是高管和其他有权力的人,他们更有可能为保护有价值的公司或个人信息而付款。

物联网IoT

数十亿新的物联网设备正在连接到企业网络。但考虑到很多不安全因素,大量使用只会增加黑客目标的数量。去年十月的Dyn攻击显示网络犯罪分子操纵物联网造成严重破坏是多么容易。特别令人不安的是,黑客将恶意软件部署到使用 IoT设备的机器人上进行DDoS攻击。他们还为模仿者创建了一个攻击模板。网络犯罪分子可以很容易地获取未来的源代码和其他攻击工具推出自己的僵尸网络。

移动安全威胁无处不在

大约4%的移动设备被恶意软件感染,而大约一半的移动设备受到暴露企业数据的高风险。员工仍然忽视公司协议,并将未经授权的移动应用程序下载到用于连接到企业网络的设备上。应用商店有时也会被流氓开发人员欺骗,他们创建恶意的开发环境,将恶意软件隐藏在表面上看起来安全的应用中。底线:随着越来越多的员工通过移动设备访问公司据,他们将注定要在2017年成为网络犯罪分子的更大目标。

政治黑客走向主流

国家定期进行cyberespionion,但国家赞助的网络攻击并不局限于工业间谍活动。“民主党全国大会”黑客提供了一个教科书的例子,说明团体如何代表国家赞助者采取行动,使用被盗的材料传播虚假信息,播种不和或传播宣传,以推动其政治目标。即使那些不直接参与政治的企业也需要更新威胁评估。威胁不再仅仅来自民族国家。安全从业人员还需要抵御各种使用网络攻击推动事业或推进议程的政治黑社会主义者所构成的威胁。
未发布 MySQL的查询优化方法及原理详解丨附下载
by Harriet666 keys 分享 1493956179760
关于MySQL的查询优化方法大家应该都知道一些:不使用NULL字段、为字段选择合适的数据类型、合理创建索引、不能使用SELECT *等等,但是你真的理解了这些优化方法了吗?它们的工作原理是什么?在实际运用中性能可以得到提升吗?其实未必。如何合理运用这些优化方法的前提是理解其中原理,希望本文能给你一定的帮助。
 
开源数据库MySQL v5.7最新版下载>>>
 

MySQL逻辑架构 

如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。

 

MySQL逻辑架构

MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。 
 
MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间、数学、加密等函数)。所有的跨存储引擎的功能也在这一层实现:存储过程、触发器、视图等。 
 
最下层为存储引擎,其负责MySQL中的数据存储和提取。和Linux下的文件系统类似,每种存储引擎都有其优势和劣势。中间的服务层通过API与存储引擎通信,这些API接口屏蔽了不同存储引擎间的差异。 

点击查看完整文章>>>

未发布 串行端口监视器Serial Port Monitor v7.0.312发布丨附下载
by Harriet666 keys 分享 1496999958369
串行端口监视器Serial Port Monitor是专业、强大的系统实用程序,用于监测RS232/422/485 COM端口。它不但可以监测、显示、记录和分析系统中串行端口的所有活动,还可以跟踪应用程序或驱动程序开发、测试等过程中可能出现的问题,因此,它是优化串行设备最理想的一套程序。
 
【Serial Port Monitor最新版下载】
Serial Port Monitor v7.0.312更新内容

新增:
  • Modbus协议(RTU和ASCII)解码。
  • Modbus协议的新视图。
  • 用于Modbus协议的独立过滤器。
  • 监控会话比较。
  • 支持Windows Server 2016。
  • 将会话再现到串行端口的功能。
  • 64位GUI版本(当进程占用太多的RAM时,监控将不会中断)。
  • 视图之间的选择同步。
  • 表格视图的“注释”列。
  • 在工具栏中打开和关闭过滤器的功能。
  • 当监控不活动时,能够创建用于数据重定向的新文件。
  • 在表格视图中的第一个和最后一个突出显示的IRP之间的状态栏中显示总读/写数据统计信息。
  • 在转储视图中显示串行端口设置更改。
  • 在“转储”视图中选择显示哪些数据的选项:二进制、ASCII、端口设置。
  • 会话文件打开时,在状态栏中显示监控会话统计信息。
  • 能够将过滤器应用于特定的串行端口。
  • 在表格视图中显示应用程序尝试写入端口的Write事件的数据,除了已写入的数据。
  • 能够禁用终端视图的自动滚动。
  • 命令行选项允许将数据附加到文件而不是覆盖它。
  • 保存监视会话时的进度条。
改进:
  • 表格视图中的IRP现在显示“Line”视图中的转录提示。
  • 重新设计“新会话”窗口(所有可用的端口立即显示)。
  • 主窗口标题现在显示正在监视的串行端口。
  • 双击即可打开监控会话文件。
  • 可以通过将监控会话文件拖放到串行端口监视器窗口中来打开监视会话文件。
  • “新建会话”窗口中的串行端口现在按端口号而不是名称排序。
  • 当监视会话文件被打开时,监控不会自动启动。
  • “数据表示”选项将不允许现在每行设置超过100个字符,以提高性能。
修复:
  • 启用“保持最后100个IRP”时,内存泄漏(现在此选项可防止长时间监控期间的高内存消耗)。
  • 当硬件流量控制启用且连接另一端的串口未打开时,内置终端挂起。
  • 0d 0a字符显示不正确。
  • 当系统中出现新的串行端口时挂起。
  • 终端视图菜单选项关闭时禁用。
  • 监视进程启动时开始捕获选项。
  • 解析IOCTL_SERIAL_GET_PROPERTIES和IOCTL_SERIAL_LSRMST_INSERT事件。
  • 在打开大型监视会话文件时关闭串行端口监视器。
  • 串行端口监视ActiveX安装与串行端口监视器不一致。

试用、下载、了解更多产品信息请点击"咨询在线客服"   

1
未发布 LEADTOOLS v19试用版安装指南图文详解
by Harriet666 keys 分享 1500625055710
LEADTOOLS (Lead Technology)由Moe Daher and Rich Little创建于1990年,其总部设在北卡罗来纳州夏洛特。LEAD的建立是为了使Daher先生在数码图象与压缩技术领域的发明面向市场。在过去超过18年的发展历程中,LEAD以其在全世界主要国家中占有的市场领导地位,在数码图象开发工具领域中已成为既定的全球领导者。LEADTOOLS开发与发布的LEAD是屡获殊荣的开发工具包。
 
LEADTOOLS V19试用版下载>>>
 
本文详细介绍了LEADTOOLS V19试用版安装方法,请按照下面的提示来安装试用版。

选择No,我希望评估这个产品并点击下一步。
点击Get License按钮,获取License,之后会弹出LeadTools官方网页。
填写email后点击CHCEK EMAIL,会要求填写其他信息。
填写带星号的地方,尤其是Email地址要填写正确。确保能够收到邮件。点击提交后,就能收到一个下载邮件。
点击下载连接下载试用License,保存后选择如下图按钮,选中刚才下载的Zip文件。
然后选择下一步,选择我接受、下一步:
然后选择安装路径、下一步即可开始安装。
之后一路选择Next即可安装完毕。
未发布 扫描识别工具Dynamic Web TWAIN使用教程:属性/方法/事件介绍
by Harriet666 keys 分享 1511947096620
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
本文为你介绍Dynamic Web TWAIN中属性/方法/事件的具体操作代码,欢迎收藏。
 
Dynamic Web TWAIN最新版免费下载>>>
 
当正确实施后,Dynamic Web TWAIN将在页面加载后自动初始化。一旦初始化,你就可以像堆任何正常的JS对象一样控制它。您可以参考我们的在线API文档来查看Dynamic Web TWAIN的所有内置属性、方法和事件。
 
这里有三种使用Dynamic Web TWAIN的方法:

属性

属性用于在运行时从Dynamic Web TWAIN中获取或设置特定的值,例如Resolution、Duplex、IfShowUI等。
1
2
3
/* Property */
/* Scan pages in 200 DPI */
DWObject.Resolution = 200;

方法

方法用于调用Dynamic Web TWAIN对象的内置函数,如AcquireImage、SaveAsJPEG、Rotate等。语法非常简单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Method
   
///
<summary> /// Rotates the image of a specified index in buffer by a specified angle.
  /// </summary>
///
<param name="sImageIndex" type="short" data-filtered="filtered">
specifies the index of image in buffer. The index is 0-based.
 
///
<param name="fAngle" type="float" data-filtered="filtered">
specifies the angle.
///
<param name="bKeepSize" type="bool" data-filtered="filtered">
specifies whether to keep the original size
///
<returns type="bool" data-filtered="filtered"></returns>
DWObject.Rotate(0, 45, false); // rotate the 1st image in the buffer by 45 degrees

事件

当达到某个触发点时触发事件。例如,OnMouseClick鼠标点击事件等。与属性和方法相比,事件是有点难度的。在这里我们再多谈一下。
 
处理事件
添加一个事件监听器
 
要添加事件监听器,可以使用内置方法RegisterEvent。请参考下面的示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
/* OnWebTwainReady event fires as soon as Dynamic Web TWAIN is initialized and ready to be used. It is the best place to add event listeners */
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", Dynamsoft_OnPostTransfer);
}
function Dynamsoft_OnPostTransfer() {
   /* This event OnPostTransfer will be triggered after a transfer ends. */
   /* your code goes here*/
}
</script>
 
在上面的代码中,我们添加了JavaScript函数Dynamsoft_OnPostTransfer()作为事件OnPostTransfer的事件监听器。另外,你可以写这样的代码:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", function() {
    /* your code goes here*/
   });
}
</script>
 
有参数的事件
一些事件具有参数。以OnMouseClick事件为例:
1
2
/* sImageIndex is the index of the image you clicked on*/
OnMouseClick(short sImageIndex)
 
当您创建相应的JavaScript函数(AKA,事件侦听器)时,可以包含参数并在运行时进行检索。
1
2
3
function DynamicWebTwain_OnMouseClick(index) {
    CurrentImage.value = index + 1;
}

或者
1
2
3
DWObject.RegisterEvent("OnPostTransfer", function(index) {
    CurrentImage.value = index + 1;
});
 
特殊事件 -“OnWebTwainReady”
在所有的内置事件中,有一个特殊事件“OnWebTwainReady”。基本上这个事件在Dynamic Web TWAIN对象被初始化并准备好使用的时候触发。正如您在本文前面看到的那样,推荐使用它的方法是:
1
2
3
4
5
6
7
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
}
</script>

或者
1
2
3
4
5
<script type="text/javascript" data-filtered="filtered">
   Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', function() {
     DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   });
</script>

本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!

未发布 LEADTOOLS HTML5 Medical Viewer(云PACS)本地部署指南
by Harriet666 keys 分享 1517902071278

Leadtools 19总套包下载>>>

相关部署文件所在位置:C:\LEADTOOLS 19\Shortcuts\Medical Viewers\.NET Class Libraries\HTML5 Medical Viewer\Medical Web Viewer
部署步骤:
image
 
1.数据库以及PACS服务部署。
点击“01 - Run This First To Config 32-bit Demos”图标,进入数据库部署页面
image
image
 
提示保存成功后会进入PACS服务配置页面
image
配置完成后关闭即可
 
2.WEB服务相关部署。
2.1点击“02 - Run This Second to Run the Medical Web Viewer 32-bit Demo”,弹出配置窗口后点击“Fix”按钮
image
 
2.2点击Next按钮,下个界面继续点击Next
image
 
2.3确保在最后一个界面是Success提示,可以点击Test按钮对服务进行测试,确认无误后关闭该窗口,回到上一个窗口
image
 
2.4点击“Run Viewer”按钮即可在浏览器进行浏览,用户名和密码即为刚才在数据库设置时填写的字符。
image
 
2.5部署完成后可以在系统IIS管理器中看到相关的服务
image
6
未发布 Essential Studio for Xamarin更新2017 v2,新增sunburst图表控件丨附下载
by Harriet666 keys 分享 1495012101440
Essential Studio for Xamarin是全面的Xamarin.iOS、Xamarin.Android和Xamarin.Forms组件套包,包含最快的图表和网格。Essential Studio for Xamarin更新至2017 v2版本,新增sunburst图表控件和许多其他功能。
 
Essential Studio for Xamarin最新版点击下载>>>

Essential Studio for Xamarin 2017 v2新功能


sunburst图表

sunburst图表对于可视化分层数据非常有用。中心圆表示结构的根,外圈表示结构的更高级别。

主要特征

  • 可视化分层数据
  • 数据标签更易懂
  • 支持图例
  • 自定义色彩

6ed4e6fc8b2847748c0705c24fb07bbdojpg

新的图像编辑器

增加了一个新的图像编辑器,包含以下功能:
  • 图像裁剪
  • 文字和形状的图像注释
  • 图像旋转和翻转
  • 用于自定义的交互式工具栏

499a8e0352954ff789caad7efd651106ojpg

列表显示

自动适应

列表项目可以根据内容自动调整,并且在进入视图时可按需查询每个项目的大小。

5064cc07100c40bfab578c9ec6d70232ojpg

实时更新

在运行时对底层执行移动和替换操作时自动刷新视图。


PDF查看器(预览)

文本搜索

搜索文本功能已经添加到XAMarin.Forms的PDF查看器中,允许用户在PDF文档中查找搜索文本实例。

1f8ec9c828124530a8c208a02fce1c2cojpg

演示

注释功能

可以在PowerPoint演示文稿中创建和修改注释。

2919c162e2ac4764b082aac58ef2de95ojpg

 

数据网格

表格摘要

数据网格控件支持在视图的顶部或底部显示表格摘要信息。

2f1e53700a1545e7987cd34b7070918dojpg

数据模板选择器

数据网格控件支持模板列中的数据模板选择器,并根据用户的需要自定义单元格模板。

dac10c22111d4d319e5bb3f7f2cce4efojpg

调整大小

数据网格控件支持调整大小功能,允许在平移或平移完成时调整列的大小。

fdaa8b97d07f44dfb10d60acd6dd1038ojpg

计划表

性能改进

控制性能提升以便处理大量的计划。加载性能也得到改善,以便在运行时更改计划视图时提供更好的体验。

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. 在无管理员权限的情况下,使用安装Python补全 pip临时配置环境变量
  2. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  5. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  6. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  7. Node.js 打印vite react+go项目目录树
  8. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  9. Windows与Mac通过git ssh和rsync实现文件共享互传
  10. Windows与Mac通过git ssh和scp实现文件共享互传

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA