未找到

未发布 【示例教程】如何用leadtools创建一个OCR驱动的计算器
by Harriet666 keys 分享 1519808939687

Leadtools 19总套包下载>>>

日常工作和业务中会有一些图片中的计算公式等需要计算,这个代码片断显示了LEADTOOLS OCR可以用来检测、识别和执行简单的数学命题,如“2 + 2”。
static void SimpleOCRCalculator(string filePath)
      {
         RasterCodecs codecs = new RasterCodecs();

         RasterImage image = codecs.Load(filePath);

         string[] calculations;
         using (IOcrEngine engine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
         {
            engine.Startup(null, null, null, null);
            IOcrPage page = engine.CreatePage(image, OcrImageSharingMode.None);

            page.AutoZone(null);
            page.Recognize(null);

            calculations = new string[page.Zones.Count];

            for (int i = 0; i < page.Zones.Count; i++)
            {
               calculations[i] = page.GetText(i);
            }

            engine.Shutdown();
         }

         Dictionary<string, Action<double, double>> operands = new Dictionary<string, Action<double, double>>();
         operands.Add("+", new Action<double, double>(delegate(double a, double b) { double ans = a + b; Console.WriteLine("{0} + {1} = {2}", a, b, ans); }));
         operands.Add("-", new Action<double, double>(delegate(double a, double b) { double ans = a - b; Console.WriteLine("{0} - {1} = {2}", a, b, ans); }));
         operands.Add("x", new Action<double, double>(delegate(double a, double b) { double ans = a * b; Console.WriteLine("{0} * {1} = {2}", a, b, ans); }));
         operands.Add("/", new Action<double, double>(delegate(double a, double b) { double ans = a / b; Console.WriteLine("{0} / {1} = {2}", a, b, ans); }));

         for (int i = 0; i < calculations.Length; i++)
         {
            string equation = Regex.Replace(calculations[i], @"\n|\r| ", "");
            string[] ops = new string[] { "+", "-", "x", "/" };

            for (int j = 0; j < ops.Length; j++)
            {
               int index = equation.IndexOf(ops[j]);

               if (index > 0 && index < equation.Length)
               {
                  string op1 = equation.Substring(0, index);
                  string op2 = equation.Substring(index + 1);

                  double arg1 = double.Parse(op1);
                  double arg2 = double.Parse(op2);

                  operands[ops[j]](arg1, arg2);

                  break;
               }
            }
         }

         codecs.Dispose();
         image.Dispose();
      }

 

用于测试的图像如下。

resource

未发布 VintaSoft PDF插件VintaSoftPDF.NET Plug-in更新至v5.6,新增多页查看模式
by Harriet666 keys 分享 1520241862267
VintaSoftPDF.NET Plug-in是一个完全的.NET组件,可用于查看,创建以及编辑PDF文档。该程序库还可用于显示,渲染,创建,转化,注释,打印,保存,修改和编辑PDF文档页面。
 

在WinForms或WPF查看器中显示PDF文档:
  • 当查看器以多页查看模式工作时,增加了同时注释多个PDF页面的功能。
  • 当查看器以多页查看模式工作时,增加了同时填写多个PDF页面交互式字段的功能。
在HTML5或SVG查看器中显示PDF文档:
  • 增加了新的可视化工具 - WebPdfImageExtractorToolJS,可以从PDF页面选择和提取图像。
  • 增加了新的可视化工具 - WebPdfTextSelectionToolJS,可以从PDF页面搜索、突出显示和提取文本。
在WinForms和WPF图像查看器中编辑PDF内容:
  • 以多页面查看模式工作时,增加了同时编辑多个PDF页面交互字段的功能。
  • 以多页面查看模式工作时,增加了同时删除多个PDF页面内容的功能。
  • 以多页面查看模式工作时,增加了同时编辑多个PDF页面内容的功能。
  • 以多页面查看模式工作时,增加了将PDF注释和交互式字段从一个页面移动到另一个页面的功能。
  • 增加了新的可视化工具 - PdfContentXObjectTool,它允许从PDF页面查找、突出显示和删除表单或图像。
PDF文档的验证和转换:
  • 将PDF文档转换为PDF/A格式:
    · 增加了转换包含透明度文档的功能。
    · 增加了将TrueType字体转换为CFF字体的功能。
    · 增加了查看文档中修改列表(ConversionProfileResult类的AppliedCommands属性)的功能。
  • 改进PDF/A转换器。
  • 改进PDF/A验证程序。
  • 修复PDF/A转换器中的一些错误。
使用PDF文档:
  • 创建Web API 2控制器以使用PDF文档(VintasoftPdfApi2Controller类)。
  • 创建Web API控制器以使用PDF文档(VintasoftPdfApiController类)。
  • 创建HTTP处理程序以使用PDF文档(VintasoftPdfHandler类)。
  • 创建WCF服务以使用PDF文档(VintasoftPdfWcfService类)。
优化PDF文档:
  • 增加了删除PDF文档中未使用的资源(PdfDocument.RemoveUnusedNamedResources)的功能。
  • 增加了删除PDF页面的未使用资源(PdfPage.RemoveUnusedNamedResources)的功能。
  • 添加了删除PDF表单中未使用的资源(PdfFormXObjectResource.RemoveUnusedNamedResources)的功能。
  • 优化PDF文档的打包算法。
PDF文档中的文本搜索和文本提取:
  • 增加了提取PDF页面的格式化文本的功能。提取的文本可以按段落格式化。架构是开放的,并允许使用自定义文本格式算法。
在PDF页面、XObject表单或注释中绘制:
  • 改进了PdfGraphics.DrawString()方法中的换行算法。现在,即使单词中没有空白,算法也会进行优化。
使用PDF文档的字体:
  • 可以判断是否可以使用指定字体对指定文本进行编码的功能。
  • 改进了字体的解析器。
编辑PDF内容:
  • 改进了裁剪PDF页面内容的算法(PdfPage.Crop)。
  • 改进了裁剪PDF表单内容的算法(PdfFormXObject.Crop)。
与PDF文档的可视化交互:
  • 改进了JavaScript注释器。
 
完整更新内容点击查看>>>
未发布 集成的HTTP嗅探器HttpWatch v11.0.16发布丨附下载
by Harriet666 keys 分享 1503393685676
HttpWatch是一款集成的HTTP嗅探器,为IE和Firefox提供新的方法以查看您网站的负载和运行情况。你可以直接在浏览器中调试由web页面生成的网络流量,而无需切换到一个单独的工具。

【HttpWatch v11.0.16点击免费下载>>>】

HttpWatch v11.0.16更新内容

修复:

  • “选项”对话框上的“帮助”按钮可能无法在IE中打开。
  • 如果Chrome选项卡关闭或Chrome已打开并立即关闭,则HttpWatch可能会崩溃。
  • 如果在页面仍在加载时停止录制,则IE可能会发生错误。
未发布 TWAIN扫描识别工具Dynamic Web TWAIN发布v13.4,改进安装过程丨附下载
by Harriet666 keys 分享 1520925039127
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。
 
 
Dynamic Web TWAIN v13.4更新内容
改进:
  • [HTML5]优化安装过程,无法将Dynamic Web TWAIN模块下载为ZIP的用户现在可以将其下载为MSI文件进行安装。
修复:
  • [HTML5]修复了将Dynamic Web TWAIN与其他库或框架(如流行的BootStrap)一起使用时在页面上看到进度条的错误。

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

315

未发布 图形图表设计软件Edraw Max更新至v9.1丨8.5折特惠
by Harriet666 keys 分享 1520925391498
Edraw Max(亿图图示)是一款综合图形图表制作软件,它包含丰富的实例和模版,帮助您轻松创建流程图、网络拓扑图、组织结构图、商业图表、工程图,思维导图、软件设计图和平面布局图等。亿图采用更智能和人性化的绘制方式,包括丰富的图形模板库和特色实例库,最大程度帮助设计者降低工作量,更快捷阐述设计思想,提升创作灵感。
 
目前Edraw Max(亿图图示)在线订购享85折优惠正在进行中,欢迎您下载试用版进行运用!
 
 
 
v9.1更新内容:
  • 添加了平移/手形工具,只需按住鼠标右键即可自由平移画布。
  • 添加插入QR码的功能。
  • 新增屏幕捕捉功能。捕捉的图像可以立即插入到您的绘图中。
  • 增加了设置默认字体的功能。您可以在选项菜单中选择“使用默认字体而不是主题字体”。
  • 改进了PDF和Word导出的效果,解决了文本错位的问题。
  • 增加了语言更改功能。现在您可以直接从选项菜单更改UI语言。
  • 添加并改进了更多的线框符号库,包括网站线框元素、线框图标、iOS图标和Andriod线框图标。添加了更多的线框模板。
  • 添加Genogram符号和模板。
  • 为K-12教育添加了大量的科学示例和模板。
  • 为物联网、智能家居、大数据、人工智能等添加了剪贴画。

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

315


未发布 MailBee.NET Objects发送电子邮件(SMTP)教程二:SMTP认证
by Harriet666 keys 分享 1493360808088
 
大多数SMTP服务器都要求用户进行身份验证,才能将电子邮件发送到外部电子邮件地址(属于其他域的地址)。登录/密码通常与同一服务器上用户的POP3或IMAP帐户相同。
C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("smtp.company.com", "jdoe", "secret");    
mailer.SmtpServers.Add(server);
...
mailer.Send();                                                               
VB.NET:
Dim mailer As New Smtp() 
Dim server As New SmtpServer("smtp.company.com","jdoe","secret") 
mailer.SmtpServers.Add(server)
...
mailer.Send()
 
在这种情况下,如果要使用Connect方法手动建立连接,过程如下:
C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("mail.domain.com", "user@domain.com", "pass");
mailer.SmtpServers.Add(server);
mailer.Connect();
mailer.Hello();
mailer.Login();                                                            
VB.NET:
Dim mailer As New Smtp()
Dim server As New SmtpServer("mail.domain.com", "user@domain.com", "pass")
mailer.SmtpServers.Add(server)
mailer.Connect()
mailer.Hello()
mailer.Login()
 
如果启用SMTP认证(由于登录名和密码在SmtpServer函数中已经确定),那么Login方法将尝试使用服务器支持的最佳(最安全)的方法在SMTP服务器上进行身份验证。你也可以强制MailBee使用指定的身份验证方法,或尝试最简单而不是最安全的方法。
以下代码可以强制MailBee使用SASL LOGIN(不安全)、SASL PLAIN(不安全)或SASL NTLM(安全)的方法。只有SASL LOGIN或SASL PLAIN暂不支持SASL NTLM:
C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("smtp.company.com", "jdoe", "secret");
server.AuthMethods = AuthenticationMethods.SaslLogin | 
AuthenticationMethods.SaslPlain | AuthenticationMethods.SaslNtlm;
server.AuthOptions = AuthenticationOptions.PreferSimpleMethods;
mailer.SmtpServers.Add(server);
...
mailer.Send();                                                        
VB.NET:
Dim mailer As New Smtp() 
Dim server As New SmtpServer("smtp.company.com","jdoe","secret") 
server.AuthMethods = AuthenticationMethods.SaslLogin _ 
Or AuthenticationMethods.SaslPlain Or AuthenticationMethods.SaslNtlm
server.AuthOptions = AuthenticationOptions.PreferSimpleMethods
mailer.SmtpServers.Add(server)
...
mailer.Send()
 
一些较旧的服务器要求客户端自己进行身份验证,但不支持SMTP身份验证。这是因为SMTP身份验证是SMTP协议的可选扩展项(称为ESMTP身份验证更为正确)。在这种情况下,你可以使用与SMTP服务器共享用户帐户数据库的POP3服务器执行POP3认证。这被称为POP-before-SMTP认证。使用MailBee,你可以采用两种方式使用POP-before-SMTP。
如果POP3和SMTP服务器名称相同(例如,两个服务器都是mail.domain.com),并且POP3服务在默认端口110上运行:
C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("mail.domain.com", "jdoe@domain.com", "secret").AuthPopBeforeSmtp = true;
...
mailer.Send();                                                     
VB.NET:
Dim mailer As New Smtp() 
mailer.SmtpServers.Add("mail.domain.com", "jdoe@domain.com", "secret").AuthPopBeforeSmtp = True
...
mailer.Send()
 
如果服务器名称不同(例如POP3的POP.domain.com和SMTP的smtp.domain.com)或POP3端口是非标准的,请在连接到SMTP服务器之前使用AuthPopBeforeSmtp方法。
C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("smtp.domain.com");
mailer.AuthPopBeforeSmtp("pop.domain.com", 110, "jdoe@domain.com", "secret");
...
mailer.Send();                                                       
VB.NET:
Dim mailer As New Smtp() 
mailer.SmtpServers.Add("smtp.domain.com")
mailer.AuthPopBeforeSmtp("pop.domain.com", 110, "jdoe@domain.com", "secret")
...
mailer.Send()
 
注意:POP-before-SMTP验证完成后,你无需再调用Login方法。Login方法仅执行ESMTP认证。
MailBee还支持Windows集成身份验证(使用当前记录的Windows用户的凭据登录)。例如:
C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("smtp.domain.com", null, null, AuthenticationMethods.SaslNtlm);       
VB.NET:
Dim mailer As New Smtp() 
mailer.SmtpServers.Add("smtp.domain.com", Nothing, Nothing, AuthenticationMethods.SaslNtlm)
 
如果你开发的是在匿名IIS或ASP.NET用户文本中运行的ASP.NET应用程序(因为当前记录的用户是IIS用户而不是使用该应用程序的人员),那么你无法使用它。
未发布 【315style】VMProtect正版授权低至6.9折,折后再享第二套半价!
by Harriet666 keys 分享 1521622003370
在3.15国际消费者权益保护日到来之际,慧都科技联合全球知名厂商VMPsoft特别推出“VMProtect正版授权超低折扣”的促销活动,活动期间,VMProtect授权低至6.9折,折后再享第二套半价!
 
活动时间:即日起至2018.4.15
 
用户在购买同一版本的平台授权时,既可在原有折扣基础上享受第二套半价的优惠。
 
如:用户购买 Ultimate Edition Personal License for Windows平台 + for OS X平台
      最终购买价为:3742+3742/2=5613元
 
VMProtect是一款虚拟机保护软件,是目前最为流行的保护壳之一。VMProtect将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。除了代码保护,VMProtect还可以生成和验证序列号,设置过期时间,限制免费更新等等。
 
郑重承诺:慧都所售产品均为厂商授权的正版产品,在线订购安全便捷,请完全放心!
未发布 VMProtect用户手册:专用术语
by Harriet666 keys 分享 1521622426288
VMProtect是一款虚拟机保护软件,是目前最为流行的保护壳之一。VMProtect将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。除了代码保护,VMProtect还可以生成和验证序列号,设置过期时间,限制免费更新等等。

VMProtect最新试用版下载>>>


 
如果您不知道相应主题的专用术语,则无法有效使用该工具。本篇教程解释了VMProtect中使用的术语。一些术语可能会提供与传统术语不同的含义。
 
字节码 - 将实际处理器的命令转码为虚拟机命令后收到的代码。
 
虚拟化 - 一种将应用程序的部分可执行代码转换为具有命令系统,体系结构和操作逻辑的虚拟机命令的过程,这些命令对潜在的黑客来说是未知的。代码的虚拟化片段由虚拟机的解释器执行,而不将其转换为物理处理器的机器语言代码。通常,虚拟化片段的反向工程归结为建立一个具有与虚拟机模拟的处理器相同架构的反汇编程序,并分析由此产生的反汇编代码。
 
虚拟机 - 在受保护的应用程序中直接执行字节码的程序代码。
 
水印 - 每个字节的用户数组都有一个唯一的标识,可以明确标识该程序被黑客复制的合法所有者。
 
突变 - 用一个模拟或一组命令代替一个原始命令产生相同的结果。
 
混淆技术 - 一组旨在使程序代码分析复杂化的方法和技术。根据编程语言写入受保护程序,使用不同的混淆类型。写在解释语言(的Perl,PHP等)的应用程序混淆通过修改源代码所做的:评论被删除,变量给出了毫无意义的名称,字符串常量被加密等等。通过转换由虚拟机处理的字节码来执行Java / .NET应用程序的混淆。编译程序的混淆依赖于修改机器语言代码:混淆器添加各种“垃圾”命令,“死代码”,随机跳转。另外,原始命令会发生变化,部分操作会移至堆栈,并进行了一些结构(或不太常数学的)转换。对混淆的代码片段进行反向工程会尝试将片段恢复到其原始状态,只要正确完成混淆处理,这是一项耗时的任务。
 
保护器 - 旨在保护其他程序免遭黑客攻击的软件。现在的大多数保护器都不会修改应用程序的源代码,而是打包或加密应用程序。主要重点放在保护解包/解密程序或程序上。
 
入口点 - 加载到内存中的应用程序的初始地址执行从开始。
 
压缩 - 通过使用非典型算法压缩程序和/或库的可执行文件来保护程序代码的一种方法。受保护的代码片段由封装器压缩,并在应用程序执行时在用户端完全或部分解压缩。
 
加密 - 通过强大的加密算法来保护应用程序代码的一部分。受加密保护的软件要求最终用户输入激活码,以消除开发者为未注册版本的程序设置的限制。

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

未发布 JavaScript网络摄像头和视频捕获Dynamsoft Camera SDK v5.2发布
by Harriet666 keys 分享 1490689152180
JavaScript网络摄像头和视频捕获Dynamsoft Camera SDK v5.2发布。新版本将Windows服务部分重组为common Dynamsoft Service,由其他Dynamsoft Web-based Imaging SDKs共享。使用common Dynamsoft Service,你可以轻松地在应用程序中实现多个Dynamsoft HTML5 / JavaScript imaging SDK。

Dynamsoft Camera SDK v5.2点击下载>>>

例如,你的Web应用程序可能需要实现以下功能:
  • 扫描纸质文件
  • 从网络摄像头中捕获图像
  • 从扫描的文档或网络摄像头中读取条形码
你可以同时使用Dynamic Web TWAIN、Dynamsoft Camera SDK和Dynamsoft Barcode Reader来满足你的要求。他们共享common Dynamsoft Service进行通信。你也可以轻松地在产品之间共享图像数据。

v5.2更新内容

  • 更改了摄像头授权对话框的行为,默认情况下不会显示。
  • 添加了一个新的方法dynamsoft.dcsEnv.setLanguage,用来设置摄像头授权对话框中使用的语言。
  • 添加了一个新的方法getImagePartUrl,根据图像查看器中的索引获取图像的URL。
未发布 SSLRobot:适用于HttpWatch的免费SSL / TLS测试工具
by Harriet666 keys 分享 1491983448478
HttpWatch显示了用于HTTPS请求的SSL连接的摘要:
HttpWatch
虽然此信息非常有用,但有客户已经在询问有关证书、协议版本以及服务器配置等其他方面的更多详细信息。一些在线的SSL工具可以做到这一点,但测试通常很慢,不能用于调查本地网络或测试环境中的服务器。
为了解决这些问题,HttpWatch开发了SSLRobot - 一种基于桌面(Mac和PC)的SSL扫描工具,可快速检查安全服务器:
HttpWatch
该工具可以突出显示可能会危及安全Web服务器安全性的配置问题:
HttpWatch
此工具已经集成到HttpWatch(1.0.56+版本)中,你可以从SSL选项卡或URL上下文菜单开始检查:
HttpWatch
如果你拥有当前版本的HttpWatch Professional许可证,你可以访问此页面申请SSLRobot的免费许可证密钥。

 
HttpWatch简介
HttpWatch是一款集成的HTTP嗅探器,为IE和Firefox提供新的方法以查看你网站的负载和运行情况。你直接在浏览器中调试由web页面生成的网络流量,而无需切换到一个单独的工具。

 近期热门 - 点击最多
  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基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

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

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

OnceOA