未找到

未发布 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书丨附下载
by Harriet666 keys 分享 1488871478478

【Dynamic Web TWAIN最新版点击下载!】

改进

  • 【仅限HTML5】通过将签名算法更新为SHA256来改进SSL证书。
  • 【仅限HTML5】改进了Web TWAIN处理新证书的服务。

修复

  • 修复了当用户未注册OnPostTransfer时扫描可能失败的问题
  • 修复了页面正在HTTPS中运行时CreateDWTObject仍尝试连接到非SSL端口的问题
未发布 数据库解决方案Data Abstract 9发布丨附下载
by Harriet666 keys 分享 1488791846601

Data Abstract 9最新版试用点击下载>>>

Data Abstract 9是一次重要的版本更新,而更重要的是它的基础:Remoting SDK框架。查看详细的更新日志,以获得所有功能、增强和错误修正的完整列表。

未发布 15个适合初学者学习C#编程语言的免费在线资源丨附地址
by Harriet666 keys 分享 1488523005149

C#是一种通用编程语言,广泛应用于开发企业应用程序。C#是由Microsoft开发的,是.NET框架的主要语言。C#主要用于创建控制台应用程序、图形用户界面(GUI)应用程序和Web应用程序等。这些应用程序在个人计算机、Windows移动设备和嵌入式系统上运行。C#提供了一系列功能,例如自动管理内存和垃圾回收。它支持数据封装和继承和多态性,并且包括对COM技术(组件对象模型)和基于Windows的应用程序的本地支持。 

如果你准备学习C#编程语言,那么有大量的在线资源非常适合初学者学习。这里列出了15个在线资源可以让你逐步学习C#编程。

点击查看详情>>>

未发布 【移动开发】Essential Studio for WPF 2017 v1新版发布丨附下载
by Harriet666 keys 分享 1488445200868
Essential Studio for WPF更新至2017 v1版本,增加了数据网格、地图和sunburst chart控件等更多其他功能。

Essential Studio for WPF 2017 v1点击下载>>>

未发布 Microsoft将持续交付功能添加到Visual Studio、Azure
by Harriet666 keys 分享 1488247992794

Microsoft正在向Visual Studio 2017 IDE中添加持续交付功能。

Visual Studio扩展的持续交付工具允许开发人员在Visual Studio团队服务ALM平台上设置自动构建、测试和发布管道。它适用于面向Azure应用服务和Azure容器服务的ASP.Net 4和ASP.Net Core应用程序。开发人员可以通过IDE中的通知来监视管道,提醒他们连续集成运行中发生的生成失败信息。

具体更新功能点击查看>>>

未发布 扫描识别控件Dynamic Web TWAIN v12.3.1发布,更新服务证书丨附下载
by Harriet666 keys 分享 1492766147986

Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。

Dynamic Web TWAIN能够在所有主流浏览器上面进行网页扫描。兼容 Firefox, Mozilla , Chrome , Safari , Opera以及其他的浏览器;目前主要有三个版本:ActiveX, Plugin 和 Mac。

Dynamic Web TWAIN v12.3.1最新版点击下载>>>
 
Dynamic Web TWAIN v12.3.1更新内容:
修复:
[仅限HTML5]更新了Dynamic Web TWAIN服务的证书来处理Windows 7/8 / 8.1上IE 10/11中的不兼容性。
Dynamic Web TWAIN v12.3更新内容:

改进:
[仅限HTML5]升级了Dynamic Web TWAIN服务的证书来处理Chrome 58+中的更新。
[仅限HTML5]更新了Dynamic Web TWAIN服务中用于安全连接的密钥交换和密码。
未发布 MailBee.NET ObjectsL显示HTML/纯文本邮件教程(三):显示带嵌入图片的邮件
by Harriet666 keys 分享 1502445497256
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了显示带嵌入图片的邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
包含嵌入图片(以及嵌入式脚本、CSS表和其他对象)的HTML邮件无法在不修改邮件正文的情况下呈现。这是因为嵌入对象的URL被表示为CID(Content-ID值)而不是真实的URL。HTML邮件正文中的CID参考如下所示:(IMG SRC =“cid:picture1”)。这是图像源是Content-ID值等于“picture1”的邮件附件的示例。在呈现HTML正文时,必须显示该图像代替(IMG SRC =“cid:picture1”)标签。因此,在呈现邮件的HTML主体之前,开发人员必须用相应图像的真实URL替换所有这些伪URL。例如,你可以将所有嵌入对象的附件保存到磁盘,并将相应的CID引用替换为保存的附件URL。但是,手动执行此操作非常复杂。
 
幸运的是,MailBee具有显示带有嵌入对象的HTML体的特殊功能。GetHtmlAndSaveRelatedFiles方法将所有嵌入的对象保存到临时位置,用其虚拟路
径替换所有CID,并返回准备好的HTML主体字符串。Web应用程序开发人员可以使用此方法在浏览器中显示带有嵌入图片的HTML格式的邮件。
 
使用此方法时,还应将WorkFolder物理位置设置为保存嵌入对象的附件。此物理位置必须与传递给GetHtmlAndSaveRelatedFiles方法的virtualPath值
相匹配。
C#
// We assume "C:\Inetpub\wwwroot" is a physical path to the location
// visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = @"C:\Inetpub\wwwroot";
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate));

VB.NET
' We assume "C:\Inetpub\wwwroot" is a physical path to the location
' visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = "C:\Inetpub\wwwroot"
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate))
 
因此,如果HTML格式的邮件体包含(IMG SRC =“cid:pic1”),并且该消息还具有ContentID(CID)“pic1”的嵌入式附件“picture.gif”,则调
用GetHtmlAndSaveRelatedFiles方法将替换“cid: pic1“与http://www.domain.com/picture.gif值。
 
如果你正在开发不使用虚拟路径的桌面应用程序,则可以将virtualPath设置为NonWeb值。在这种情况下,保存文件的物理路径将被用作URL。
C#
msg.Parser.WorkingFolder = @"C:\Temp";
Response.Write(msg.GetHtmlAndSaveRelatedFiles(null, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly));
VB.NET
msg.Parser.WorkingFolder = "C:\Temp"
Response.Write(msg.GetHtmlAndSaveRelatedFiles(Nothing, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly))

换句话说,嵌入式图片将由文件系统上的物理路径表示,这些路径将被放置在相应HTML标签的SRC元素中。例如(IMG SRC =“cid:pic1”)将被替换为(IMG SRC =“file:/// C:\ Temp \ picture.gif”>)。
未发布 组件套包Essential Studio for UWP 2017 v3发布丨附下载
by Harriet666 keys 分享 1503047294687
Essential Studio for UWP是包含有35 +组件的综合套包,包括最快的图表和网格组件。所有组件根据当前被呈现的设备系列自适应渲染。
 
Essential Studio for UWP 2017 v3下载>>>
 
Essential Studio for UWP 2017 v3为图表添加了一个新的选择器控件,轴刻度中断,以及支持甘特图控件的样式定制。
 

选择器

新控件

新的选择器控件可以从自定义或模板化的视图项目列表中选择一个项目。 此控件也可以作为对话框打开。
 

主要特征

  • 多列
  • 标题视图
  • 页脚视图与默认按钮
  • 项目模板
  • 自定义视图
b09ae2e16b7b4548997fd85d9064d3b1ojpg
 

图表

轴刻度中断

为图表控件提供了轴刻度中断支持。
998e0388e6704793b6aae3b4ee595364ojpg

气泡图拖动

在编辑数据值时,可以拖动气泡图。
aae1f4f56c964ed0b154d3f1868d29afojpg
 

图表

增强注释功能

注释支持交互。可以选择、拖动、调整大小并旋转。
e7f8ec77acdf419884a70b8ed5cda9d0ojpg
注释可以根据它们对齐的段自动旋转。
df09b81ba8a44e018e71932daa9d05d5ojpg
 

DOCIO

内容控件

DocIO能够在Word文档中创建和修改内容控件,并提供了一种设计具有以下功能文档的方法:
  • 创建一个类似表单的用户界面。
  • 防止用户编辑内容控件的内容。
  • 将内容绑定到XML数据。
e2e9818108454cf89c71f68feb03e43bojpg

支持Word转为EPUB

DocIO现在支持将Word文档转换为EPUB文件。
e5f20473c82c4a879aa48bb4447896a3ojpg
 

PDF

电子签名

使用PKCS#12证书与私钥数字签名文件,如.pfx文件。
239e191ec51446cea0c4d87ae7234256ojpg

标记PDF

通过允许用户创建PDF/通用可访问性(PDF / UA)或符合章节508的PDF文档来提供辅助功能。
22c6e8fcb80842788604700039fc5cdeojpg
 

PDF查看器

弹出式注释

PDF Viewer现在允许用户添加和操作PDF文档中的弹出式注释。
6119b591b4ea42ba8da83729839ac92eojpg
 

Pivot客户端

关联数据源

Pivot客户端支持在嵌入式枢轴网格和枢轴图表中可视化关系数据。 它还提供一个UI选项来拖动字段,过滤它们,并在运行时通过数据透视表字段列表创建pivot视图。
60ced88f208d4aa08f6f8d4dcda1c94aojpg
 

演示

支持插入列

演示文稿现在允许在PowerPoint演示文稿中的表中插入列。
8f97c3756b8248379e75f15f1eed84e1ojpg
 

甘特图

样式

支持定制网格标题、时间刻度、前置连接器、任务标签和资源标签的样式。
d058eb1fb44047ac8ac5e9d1a6b12f52ojpg
 

事件和方法

增加了新的可用性事件和方法。
 

本地化

支持本地化控件中的静态文本。
 

看板

本土化

支持本地化控件中的静态文本。
 

XLSIO

过滤器功能增强

  • XlsIO现在允许用户通过文本、数字、单元格颜色和字体颜色对过滤的数据进行排序。
  • 提供基于自定义文本过滤器过滤数据的功能。

da8d1b8e95894d6ea168a87b3b71054eojpg
未发布 集成的HTTP嗅探器HttpWatch更新至v11.0.21,改进F5刷新机制
by Harriet666 keys 分享 1509957982193
 HttpWatch是一款集成的HTTP嗅探器,为IE和Firefox提供新的方法以查看您网站的负载和运行情况。你可以直接在浏览器中调试由web页面生成的网络流量,而无需切换到一个单独的工具。

【HttpWatch v11.0.21免费下载>>>】


HttpWatch v11.0.21更新内容

  • 改进:使用HttpWatch扩展窗口中的F5和Ctrl+F5快捷键现在会刷新或强制刷新正在记录的Chrome选项卡
  • 改进:为“协议”列中的值添加了数据提示
  • 改进:Windows 10的扩展版本信息现在显示在“属性”窗格中
  • 修复:重复的评论项目被错误地添加到HAR文件中

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 【示例教程】使用leadtools的WCF接口功能实现从web端上传Dicom影像文件
by Harriet666 keys 分享 1517903663716
Leadtools 19总套包下载>>>
 
leadtools为web端提供了wcf接口来供用户可以登录pacs系统,检索,查看以及上传影像。本篇博客讲解如何创建一个网页来实现上传功能,通过WCF进行dicom文件的上传时,是将dicom文件转换为base64数据流,分段进行传输。
 
本篇博客运行的前提是已经部署完成Leadtools HTML5 Web Viewer,可以正常浏览。参考https://www.evget.com/article/2018/2/6/27757.html
 
在部署完成后,将下面的代码复制到一个HTML文件中,即可运行进行测试。另外需要添加html文件所需的jquery.min.js到同文件夹路径下。
<head>
    <meta charset="UTF-8">
head>

<form onsubmit="return false;">
    <input type="hidden" name="file_base64" id="file_base64">
    <input type="file" id="fileup" multiple="multiple">
    <input type="submit" value="submit" onclick="$.post('./uploader.php', $(this).parent().serialize());">
    <div>
        <div id="msg">div>
    div>
form>
<script src="scripts/jquery.min.js">script>
<script>

    $(document).ready(function () {
        authcookie = login();
        document.cookie = "authcookie=" + authcookie;
        $("#fileup").change(function () {
            getauthcookie("authcookie");
            filelist = this.files;
            file = filelist[fileindex];
            upload(file);
        });
    });
    var authcookie;//保存authcookie
    var filelist;//上传文件列表
    var file;//当前上传文件
    var tempfile = "";//临时文件名称
    var position = 0;
    var size = 40000;//分段大小
    var done = false;
    var fileindex=0;//当前上传文件序列号

    function upload(tempfile) {
        if(position==0)
            done=false;
        var reader = new FileReader();
        if (file.size > position + 40000)
            reader.readAsArrayBuffer(file.slice(position, position + 40000));
        else 
            reader.readAsArrayBuffer(file.slice(position, file.size));
        reader.onload = function (e) {
            if (e.target.readyState === 2) {
                var base64string = base64ArrayBuffer(e.target.result);
                var data = {
                    authenticationCookie: authcookie,
                    dicomData: base64string,
                    fileName: tempfile,
                    status: position==0?"start":"append"
                };
                tempfile = senddata(JSON.stringify(data));
                if (!done) {
                    position += 40000;
                    upload(tempfile);
                    if (position+40000>file.size)
                        done = true;
                }
                else {
                    var data = {
                        authenticationCookie: authcookie,
                        dicomData: "",
                        fileName: tempfile,
                        status: "done"
                    };
                    tempfile = senddata(JSON.stringify(data));
                    position = 0;
                    $("#msg").html($("#msg").html()+"第"+(fileindex+1)+"个文件已经上传完成

"); fileindex += 1; if (fileindex < filelist.length) { file = filelist[fileindex]; upload(tempfile); } else { fileindex = 0; $("#msg").html($("#msg").html() + "文件全部已经上传完成

"); } } } }; } function senddata(data) { var result; $.ajax({ type:"post", url: "http://localhost/MedicalViewerService19/StoreService.svc/UploadDicomImage", data: data, contentType: "application/json", dataType: "json", success: function(data){result= data}, async: false }); return result; } function login() { var auth; var logininfo = { userName: "a", password: "a", userData: "" }; $.ajax({ type: "post", url: "http://localhost/MedicalViewerService19/AuthenticationService.svc/AuthenticateUser", data: JSON.stringify(logininfo), contentType: "application/json", dataType: "text", success: function (data) { auth= data }, async: false }); return auth; } function query() { } function getauthcookie() { document.cookie.split(";").forEach(function (val, index) { var index = val.indexOf("="); if ($.trim(val.substring(0, index)) == "authcookie") { authcookie = $.trim(val.substring(index + 1, val.length)); } }); return ""; } function base64ArrayBuffer(arrayBuffer) { var base64 = ''; var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var bytes = new Uint8Array(arrayBuffer); var byteLength = bytes.byteLength; var byteRemainder = byteLength % 3; var mainLength = byteLength - byteRemainder; var a, b, c, d; var chunk; // Main loop deals with bytes in chunks of 3 for (var i = 0; i < mainLength; i = i + 3) { // Combine the three bytes into a single integer chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; // Use bitmasks to extract 6-bit segments from the triplet a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 d = chunk & 63; // 63 = 2^6 - 1 // Convert the raw binary segments to the appropriate ASCII encoding base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]; } // Deal with the remaining bytes and padding if (byteRemainder == 1) { chunk = bytes[mainLength] a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 // Set the 4 least significant bits to zero b = (chunk & 3) << 4; // 3 = 2^2 - 1 base64 += encodings[a] + encodings[b] + '=='; } else if (byteRemainder == 2) { chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]; a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 // Set the 2 least significant bits to zero c = (chunk & 15) << 2 // 15 = 2^4 - 1 base64 += encodings[a] + encodings[b] + encodings[c] + '='; } return base64; } script>

6


 近期热门 - 点击最多
  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