未找到

未发布 【示例教程】使用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

未发布 Visual Studio 2017 v15.5预览版的新特性先睹为快
by Harriet666 keys 分享 1508923045165
Microsoft延续了Visual Studio 2017快速迭代开发的步伐,最新发布了15.5预览版,这是VS2017这一广受欢迎的IDE自发布以来的第五次更新,该预览版的发布使用户可以先睹为快。

该预览版启用了一个称为“Stepping Back”的调试历史新特性。IntelliTrace会在整个断点的每一步上,自动对应用状态做快照,这将赋予开发人员浏览断点前后状态的能力,更易于观察在断点前后的运行效果。
 
Visual Studio 2017下载>>>

此外,Microsoft还进一步改进了基于C#和Visual Basic的解决方案的加载速度。据其宣称,所有解决方案应可在10秒内至少加载一半以上。相应地,C++开发人员应能看到IntelliTrace在执行常见命令时,性能得到了显著的提升,其中包括重命名(Rename)、更改签名(Change Signature)和找出所有引用(Find All References)等。

VS2017 15.4的IDE为C#、VB和Python开发人员提供了一种通过“Control键+点击”进入所点击项定义的功能。该功能现在也已经添加到C++的开发中。还改进了C++代码的生成,一旦受此影响的C++项目在15.5下重新编译,应该就能体验到此次更新的改进。

VS2017在安装程序上也做了一些改进,这可能会受到那些安装了多个版本VS2017的开发人员(例如在最新的VS2017旁安装了VS2017预览版)的欢迎。现在安装时会自动地创建Windows恢复点,并且每个已安装的VS2017拷贝会以不同的项列出在“添加&删除程序”(Add & Remove Programs)安装阶段的显示中。

和其它预览版一样,该预览版也不应安装在生产环境中。完整的发行说明已经给出,其中涵盖了15.5第一个预览版中包含的所有改进。
未发布 Windows Forms界面控件包Essential Studio for Windows Forms发布2017 v4
by Harriet666 keys 分享 1513933983173
Essential Studio for Windows Forms界面控件包含了高性能的Windows应用程序开发中所需的所有控件,如Grids、Charts、Gauges、Menus、Calendars、Editors等等。 到目前为止,我们开发Windows Forms 控件包已达十几年,所以该控件包是功能最齐全的控件集。除此之外,Essential Studio for WinForms还包含了一些特有控件,使您可以为应用程序添加Excel、Word和PDF格式文件的浏览和创建功能。
 
 

计算

数组公式计算
Excel中提供了对数组公式计算的支持。数组公式可以使用数组或一系列数据值执行多个计算,并返回一个或多个结果。这有助于简化公式表达式。例如,“= MAX(B1-C1,B2-C2,B3-C3,B4-C4,B5-C5)”现在可以用阵列公式“{= MAX(B1:B5-C1:C5) }”。

日期时间选择器

支持Office 2016主题
日期时间选择器控件支持Office 2016主题外观。
3cf9009f8fc24e058374276f3d8b158bojpg

DOCIO

增强Word转换成PDF功能
DocIO现在允许将带有行号的Word文档以其原始格式转换为PDF。
22d40794b650427d81577b92c4c5ff14ojpg

GROUP BAR

支持Office 2016主题
支持Office 2016主题外观,用于群组控件。
bc09d0030ed948aaabf990981a6fbd7cojpg

主框架栏管理器

支持Office 2016主题
主框架管理器控件支持Office 2016主题外观。
3e13844290e44422b68013d299856685ojpg

高级月历

支持Office 2016主题
高级月历控件支持Office 2016主题外观。
6f1de36f33ef4222922d703f6a09b2c0ojpg

RIBBON

快速访问工具栏的图标
为快速访问工具栏提供不同的图标,类似于Office多彩主题。
3883de1a67d047de902ef63607f65d54ojpg
定制
RIBBON系统按钮的外观可根据您的需求进行定制。
cbe4006720814c71bf53d4af887c3a0bojpg

电子表格

数组公式计算
Excel中提供了对数组公式计算的支持。数组公式可以使用数组或一系列数据值执行多个计算,并返回一个或多个结果。这有助于简化公式表达式。例如,“= MAX(B1-C1,B2-C2,B3-C3,B4-C4,B5-C5)”现在可以用一个阵列公式“{= MAX(B1:B5-C1:C5) }”。
Single-Cell Array Formula
cce526e4a7b84d659d4c0ef3d8008e40ojpg
Multi-Cell Array Formula
654a1a76fbe64f629c67b0b6408564a0ojpg

XLSIO

增强图像
图表元素(如图例、标题、绘图区和显示单元)的手动布局位置现在可以正确转换为图像。
1b2941b030d74fd28106463dcbc87372ojpg
未发布 【推荐】2017年你应该了解的11款新型编程工具
by Harriet666 keys 分享 1503912408799
对于开发人员来说,工具是至关重要的。工具可以使开发人员的日常工作更加轻松、高效,因为只要关注最重要的事情即可。想要寻找到更好的替代工具往往比坚持使用熟悉的、过时的工具要困难得多。在这篇文章中,我们将列出你可以在日常工作中使用的一些新的编程工具。对在线流媒体感兴趣的许多开发人员也已经开始在其开发环境中使用这些新工具,因为这些工具与其陈旧的设施相比具有明显的优势。
 
你可能会想,如果旧的工具可以完成工作,那么是否还有必要去寻找新的替代工具呢?可以肯定的说,技术始终在变革,它正在不断地塑造、改变我们的工作方式,所以,它有必要保持更新。此外,新开发工具可以通过自动化在某些方面为你的工作增添更多价值,从而更好地帮助你控制你的工作流程。所以,如果你现在确信并准备好考虑使用市场上一些新的编程工具,请继续阅读本文,以找出其中最好的、最适合你的工具。
 

1. LiveEdu


LiveEdu 是开发人员和工程师经常光顾的好地方。它是一个基于项目的学习平台,服务于游戏开发、设计、数据科学、编程、增强现实、人工智能以及虚拟现实等方面的技能提升。学习的关键在于项目的真实性,而且 LiveEdu平台还提供了蕴含许多不同主题的项目教程,可以适用于任何人,包括初学者。
 

2.Standup


Standup 对于监控团队开发进度而言是一款非常好的工具。它可以很好地集成所有你已经在用的流行工具(例如Trello、BitBucket、GitHub等)。那么接下来,它是如何工作的呢?首先,它会根据开发团队成员的提交历史完全自动地生成工作报告。这有助于团队成员之间轻松地实现信息共享,也让团队成员之间形成了积极的竞争关系。这一想法是由Mesh Studio提出的,当时他们正在完成一个客户的严格的汇报需求的合同工作。
 

3. Cell 

Cell 自称是“自驱动的网页应用开发框架”。“框架”这一关键词应该会立刻让你想到,它应该包含APIs、方法、或其他框架应该具备的功能。但是,Cell却提供了一种全新的方式来查看如何编写HTML 代码。它适用于3个简单的规则,而且不运行任何函数就能够自主构建DOM。此外,Cell还提供了一种类似写小说的方式(a novel approach)来开发网页应用。
 

4. Osquery

Osquery 是 Facebook 通过 Query 语言揭示操作系统的方法。虽然乍看起来并不是很有趣,但它其实具有很多实际的用途。例如,它可以用于获取通过USB连接的硬件设备的列表。
 
对于那些想要保护自己的应用程序免受安全漏洞影响,或是能够更好地监视其应用程序在不同系统上的性能的Web开发人员来说,其中一个相对比较有效的方法就是不使用底层函数或API交互的能力。

 

5. React Native Firebase

React Native Firebase 可以帮助开发人员更加轻松地使用 React Native 和Firebase。利用RN Firebase,你可以 在Android和iOS系统上使用 JavaScript bridge轻松访问本地 eFirebase SDK。
 

6. Warp

Warp 是一款非常简单的工具。它可以让任何人分享他们的终端。共享终端就像输入一个 warp open 命令一样简单。这可以帮助开发人员或主机供应商轻松地分享彼此的终端。这款工具的关键特征在其“安全性”和“易于传输”。让分享变得前所未有地容易!你很快就会忘记SSH 的必要性,并使用该功能与远程团队和新成员进行互动。
 

7. Draft

Draft 是一款新工具,可以帮助开发人员轻松地在 Kubernet上构建应用程序。截至目前为止,在把应用移动到版本库之前,对应用程序进行测试仍然是一项耗时且艰巨的工作。但是,利用 Draft,开发人员就可以针对“内部循环”并在Kubernetes开发沙箱中对应用程序进行测试。沙箱可以通过公共URL轻松获得,并可以使用本地编辑器进行修改。
 

8. Docsify 

Docsify 是一个文档站点生成器工具。但是,它与其他的静态HTML文件生成器却是完全不同的。利用Docsify,你可以使用 Markdown 文件生成你的站点。这样一来,你就可以修改Markdown中的代码,并及时看到更新。这种差异性使它与其他流行工具(例如GitBook等)相比也能占据明显的竞争优势。


9. Prismic IO 

Prismic IO 是一个无头CMS系统的后台应用。多亏了API,让它可以与任何站点和应用程序一起使用,并可以轻松地与现有系统进行集成。此外,CMS 还为营销人员提供了一些现代化的发布和创作工具。


10. Javalin

Javalin 为Kotlin和Java提供了简单的REST API。该REST API非常易于使用,且API也是非常流畅的。它不是一个框架,因此不应该被混淆。其目的主要是提供一个非常简单易用的轻量级 REST API库。
 
以下是用Kotlin实现的 “Hello World”API的示例:
import io.javalin.Javalin
funmain(args: Array) {
    val app = Javalin.create().port(7000)
    app.get("/") { ctx -> ctx.result("Hello World") }
}


11. Bootsnap

我们都知道,速度对于一些应用程序而言有多重要。Ruby的性能可谓是臭名昭著。然而,Bootsnap尝试通过缓存很多Ruby方法并提高其整体性能来加快其速度。Bootsnap可以以gem的形式轻松地插入你的应用程序中,它目前可用于 MacOS 和 Linux 系统。
未发布 HTML5文档查看器PrizmDoc发布v13.0,新增文档比较功能
by Harriet666 keys 分享 1509005590277
PrizmDoc新版本增加了多个功能,可提高文档管理流程的效率,促进更高的生产力。
 
PrizmDoc v13.0中最重要的新功能是文档比较。允许用户比较与Microsoft Word文档的原始版本之间所做的更改。用户选择原始文件以及更新版本,并将原始文件的所有更改(添加、删除等)显示在新的文档中,并以超链接进行快速访问。该功能对于合同条款和附录、组织图、企业标准和程序等文件特别有用。该增强功能与Microsoft Word本身的“跟踪更改”功能类似,旨在满足众多终端用户的要求。
 
PrizmDoc v13.0还在图像查看技术方面取得了显着进步。新的伽玛调整、图像锐化和线条加粗工具可以增强矢量、像素图像的查看,从而允许用户生成比以往任何时候更精致的效果图。图像增强工具对于医疗、工程和建筑行业特别有用,X射线、蓝图和CAD绘图之类的图像在线观看比以往更容易。
 
【PrizmDoc v13.0最新版下载】
 
PrizmDoc v13.0新功能

文档比较
PrizmDoc新增了Microsoft Word文档比较功能。文档比较是与先前版本交叉检查文档新版本的过程,您可以看到其更改的内容。这些更改可能包括格式修改如字体或间距更改、语法更改、添加或删除单词、句子、段落。有关如何使用新的文档比较功能的更多信息,请查看以下内容:
 
图像工具
PrizmDoc v13.0增加了一个名为Image Tools的新选项。您可以在查看器中操作文档保真度。有关更多信息,请参阅最终用户指南
 
支持Ubuntu 16.04 LTS
PrizmDoc现在支持Ubuntu 16.04 LTS。
 
支持Windows Server 2016
PrizmDoc现在支持Windows Server 2016。
 
本地SVG图标
Viewer已升级为支持本地SVG图标。您可以将默认图标替换成自己的版本。
 
在线帮助
PrizmDoc入门部分已更新,包括一个名为“1-获取评估许可证”的新步骤。
部署许可部分已更新,可以更好的帮助您了解所有许可选项。
最终用户指南部分已更新:
  • 文档比较 - 如何使用新的比较查看器
  • 图像工具 - 如何使用新的图像工具功能查看文档
 
PrizmDoc服务器
解决了错误的页面计数和呈现MS Word文档的内容问题(使用MSO渲染引擎时启用了跟踪更改)。
解决了使用LibreOffice渲染引擎时AAA/AAAA Excel日期/时间格式的不正确渲染。

未发布 客户端开发包OPC Data Client更新至v5.51,支持Visual Studio 2017
by Harriet666 keys 分享 1516698671953
制造自动化软件的领先供应商,Software Toolbox®宣布发布OPC Data Client的2017.2(5.51)版本。2017.2(5.51)版本中的新增功能包括支持Visual Studio 2017,支持安全策略Basic256Sha256,改进的HTTPS支持以及改进的连接浏览器!
 
OPC Data Client新版本下载>>>
 
新版本更新重点:
  • 支持安全策略Basic256Sha256
  • 支持Visual Studio 2017
  • 改进HTTPS支持
 
Targeting
  • 操作系统:不再支持带有SP1的Microsoft Windows Server 2008 R2(x64)。
  • 操作系统:不再支持Microsoft Windows 10(x86或x64)2015年11月更新(1511)。
  • 开发工具:Visual Studio 2017添加到主要开发工具列表中。
 
技术
  • 该产品现在主要使用Visual Studio 2017进行开发。
 
安装和卸载
  • 设置组件“开发库(COM)”的说明已更改为“类型库(COM)”,其名称已从“devlibs”更改为“typelibs ”。
  • 与OPC UA应用程序及其行为相关的参数已从UAClientEngineParameters移至新类型UAClientApplicationParameters,并且UAClientEngineParameters现在具有包含这些参数的ApplicationParameters属性。这允许更多的逻辑组织参数。受影响的属性是AllowClientCertificatePrompt,ApplicationCertificateStore,ApplicationCertificateSubject(obsolete),ApplicationName,ApplicationUriString和ProductUriString。             
 
用户界面
  • 在浏览对话框和控件时,OPC UA端点的“节点信息”框现在包含用户标识的信息。如果用户身份不是“匿名”,则文本以粗体显示。
  • OPC-UA服务器实例证书未验证通知现在包含“查看证书”按钮,允许用户显示一个对话框,其中包含证书及其关联证书链的属性。
 
工具
  • 连接浏览器
  • 新增文件 - > 重新启动命令(重新启动应用程序)。    
  • “参数编辑器”窗口现在具有“重置”按钮,允许用户快速将所选点类型的参数恢复为其默认值。
 
文档
  • “用户指南与参考”主要提供了COM组件的分离参考文档。
  • COM组件的参考文档现在只能在线(不包含在Visual Studio集成帮助中)。
 
删除
  • 代码合同程序集已被删除。
更多完整更新内容,请参考更新列表。
未发布 界面控件Essential Studio for ASP.NET Web Forms 2017 v3发布丨附下载
by Harriet666 keys 分享 1503393285260
Essential Studio for ASP.NET界面控件包含了商业Web应用程序开发中所需的所有控件,如grids、charts、gauges、menus、calendars、editors等等。同时,Essential Studio for ASP.NET中高性能的界面控件库还允许您的应用程序浏览和创建Excel、Word和PDF格式的文件。
 
Essential Studio for ASP.NET Web Forms 2017 v3点击下载>>>
 
Essential Studio for ASP.NET Web Forms 2017 v3增加了新的日期范围选择器、图表标尺等。

日期范围选择器

新控件

日期范围选择器是一个新的ASP.NET组件,允许从应用程序中的一组预定义或自定义日期时间范围中选择日期范围。
主要特征:
  • 在弹出窗口中选择日期的选项。
  • 设置自定义范围。
  • 支持本地化。
  • 支持手机。

bb4cfad9f91142d7892fd93b87dae061ojpg


统计图表

StackingSplineArea和100%StackingSplineArea系列

增加新的系列类型StackingSplineArea和100%StackingSplineArea。

f600d199c729410ba1e1d483d113ce2dojpg
8dc2cb8b93ce40d597ee163d9f572a08ojpg


数据标签饱和度

根据背景颜色来显示数据标签文本。

042f402f0d4d4057a6fc9799c8e57fb8ojpg

 

多种样条类型

图表控件现在支持多个样条类型。

d32c1e565d954914bdd77a6df1e71786ojpg

 

数据管理器

Web API批量编辑

数据管理器支持Web API批处理操作。Web API批量编辑是一个独特的功能,添加删除和更改的请求可以一次性处理。
 

可查询的数据操作

数据管理器允许通过使用可查询数据操作来查询特定数据源。它可以执行IQueryable服务器端操作,如过滤、分页和排序。
 

图表

支持标尺

标尺已添加到图表控件中。

cd297c41cc9f40879bf1fc3346aab647ojpg

 

标签拖动限制选项

拖动标签时进行对齐,以便在调整其主体对象大小后保留其相对位置。 还添加了将标签拖动到特定位置的选项。
 

DOCIO

内容控件

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

104139e1a795442c84f27d7c2f98f80aojpg

 

Word转换PDF增强功能

  • DocIO现在可以在Azure网站中将Word文档转换为PDF。
  • DocIO现在可以将具有旋转图像的Word文档转换为原始格式的PDF格式。
  • DocIO现在可以将镜像边距的Word文档转换为原始格式的PDF格式。

8136f46eb918458ca988d0e2a1e25d8fojpg

 

文件管理器

根文件夹配置

支持访问应用程序的根文件夹,并在该根文件夹中显示备用文本。

ed1c240dd8374ce1ae5191026827571bojpg

 

甘特图

工作周

甘特图控制现在支持改变项目的工作周。

775852b746e5462999f379a1ffb77e60ojpg

 

验证任务栏编辑

现在可以验证任务栏编辑。

eb1b8f75d51c44be97820269c5f26f47ojpg

 

表格

支持页面大小下拉

通过使用页面大小的下拉列表,支持更改网格页面的大小。

2b7454324c5a4e13bb1a3e4def551b6aojpg

 

看板

状态显示/隐藏选项

显示/隐藏卡的功能。它可以使用键值对卡进行分组,并可以切换显示。

46757f7645ad4663b3dfabbddd70e35cojpg

 

PAGER

新控件

PAGER是一个新的ASP.NET MVC组件,可以将大量数据导入页面进行导航。包含一个可以自定义的UI。
主要特征:
  • 导航到所需页面的选项。
  • 导航到上一个/下一个/最后/第一页的选项。
  • 支持本地化。
  • 支持手机。

4a85afa1b17a43a49b45541b2cc18023ojpg

 

PDF

压缩现有的PDF文档

减小PDF文件的大小。

7ffe56de8fd3496c9439ff1de9223e45ojpg

 

标记PDF

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

7805a042de43444b8724d9e02b2348a4ojpg

 

PDF查看器

手写签名

PDF查看器允许您将签名添加到任何PDF文档,并将其保存为标准PDF文件。

23357d2ea53e4af8b515e746a0016222ojpg

 

枢轴网格

按需加载(关系数据库)

按需加载允许仅在向下钻取操作时检索数据,从而提高控件的性能。

7a961866813e48be94b65e5cf0ed502fojpg

 

分页(关系数据库)

分页将大量记录分成单独的段以便轻松查看数据。它还提高了枢纽网格的性能。

63a08a8f4eea49cc8fc743c6f5e81009ojpg

 

按日期分组类型(关系数据库)

枢纽网格对日期类型字段进行分类,并根据年、季、月和日格式进行分组。

8f8bde86a206446da0bca8d448d63454ojpg

 

按日期类型排序(关系数据库)

支持以升序或降序来排序日期类型字段。

bb82fc56099244808a56acb85c0fad83ojpg

 

演示

支持插入列

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

bbd6b21bdacc4ed9b88887f0273b52e6ojpg

 

PDF和图像转换增强功能

演示文稿现在可以将具有旋转和嵌套组形状的PowerPoint演示文稿精确转换为PDF或图像格式。

3074d62f238d4ba2b7f3af672d0b02b5ojpg

 

时间表

在线添加/编辑预约

用户现在可以创建或编辑预约。

d9126e4ca35c4045b145fca607cc59ffojpg

 

电子表格

支持不连续范围的图表

电子表格控件现在可以将串联的图表导入不连续的范围或一系列点。

48fcc74cbb9244649d4a05f576f0cbd6ojpg

 

树型网格

文字换行

树型网格控件现在支持在单元格中文本换行。

cb2420d796e44b30b6ad7a8ae047729bojpg

 

按需加载

树型网格控件现在使用“按需加载”方法来支持数据绑定。

5e04a46c08274b3eb7f8897b42c16147ojpg
27e87b959dbf4890b05ef905e8198ca6ojpg

 

命令列

现在可以使用树型网格中的命令列执行CRUD操作和自定义操作。

6159700e81d04aaebe2468feed7e5673ojpg
2bded05aad0e4eeb81502460adb8a190ojpg

 

打印

现在可以打印树型网格的内容。

5aff4cc45e6b43788428227ebe4e304dojpg

 

编辑模板

树型网格控件使用编辑模板支持使用自定义编辑器编辑单元格值。

b6decf948197447e86e8f37f704467feojpg

 

列优先

现在使用列优先级响应树格网格列。

32eba02ddd244b9db7b1d23cf9ac988cojpg

 


TREEMAP

文字溢出

支持Treemap控件中的标签文本溢出。

1e48300c56e343d591d7f41ddd865f9dojpg

XLSIO

过滤器功能增强

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

319473abe59c41dd917560a7d894029aojpg

未发布 GIS软件开发包Map Suite v10.0发布,支持Windows、Linux和macOS多平台
by Harriet666 keys 分享 1490601341066

Map Suite 10.0新功能

  • 核心功能支持Windows、Linux和macOS多平台。
  • 所有Map Suite产品系列都共享核心API。
  • 删除合并模块并将所需的程序集移动到特定程序包。
  • 创建可在多平台(包括Windows、Linux和macOS)上运行的新产品中心。
  • Map Suite产品托管在NuGet服务器上,而不是Map Suite安装程序。
  • 简化Map Suite许可策略。
  • 按功能拆分MapSuiteCore 9.0程序集。允许将必要的程序集导入到这些项目中。
  • 在Linux上支持ECW文件。
  • 在Linux上支持MrSid和JPEG2000文件。
  • 用于Map Suite产品的BareBone NuGet Package可以创建最小尺寸的应用程序。
  • 用于Map Suite产品的Standard NuGet Package可以让用户更轻松的将现有的9.0项目转移到10.0版本上。

Map Suite 试用版下载>>>

v10.0和v9.0之间的变化

我们努力使安装过程和版本维护变得更加容易,并将所有Map Suite产品重新打包到NuGet软件包中。开发人员可以选择在本地安装引用、通过使用Visual Studio的NuGet管理器进行管理或者为你的团队设置本地NuGet服务器。

更有效率

Map Suite产品可帮助开发人员更有效地创建GIS应用程序。将Map Suite组件运用到你的项目中并进行分享会让你的工作变得更加效率。

跨平台/便携式

在Map Suite 9.0之前,我们一直考虑支持像Linux、MacOS、Android、iOS这样的多平台。然而,基础结构阻止了我们的步伐。如果你已经是使用Map Suite产品的开发人员,你可能知道我们支持Windows(Wpf、WinForms ...)、iOS和Android平台,但在很长一段时间中这是比较困难的。想象这种情况:客户在Windows平台上报告MapSuiteCore中的错误。我们对它进行修复并测试。但这并不是全部的工作。我们还要向iOS和Android团队报告,要求他们解决相同的错误。这是基础结构方面的错误。我们有几个MapSuiteCore分支,它依赖于不同的框架。每次修复bug时,我们需要与其他平台同步。

现在,我们的目标是让Map Suite Core的源代码尽可能便携。借助分离MapSuiteCore的机会,我们可以将现有的功能转换为便携式。本质上来说各平台可以共享相同的源代码。

分离Map Suite Core

在Map Suite 9.0中,我们在名为“MapSuiteCore”和几个扩展的程序集中支持大部分功能。而其他产品则具有基础结构。当你启动项目时,你只能引用包含Map Suite所有功能的“MapSuiteCore”。这无法最小化你的项目。
我们决定按照功能来分离Map Suite Core,例如形状、层数、样式、符号等。你所知道的每个Map Suite功能都可能是一个单独的包。你可以选择性地使用项目所需的软件包,并将应用程序控制在最小。
Map Suite 试用版下载>>>

更简单的试用许可证

认证和许可是NuGet软件包的一个缺点。不过,我们为非注册开发人员制定了一个新策略,你不用注册就可以在有限的时间内评估Map Suite产品。你只需打开Visual Studio,创建一个项目,打开NuGet管理器并输入“MapSuite”。它会返回给你Map Suite支持的全部功能列表。
PS:原始许可证仍与10.0兼容。
第一次运行Map Suite 9.0或更低版本样本的工作流程。 

第一次运行Map Suite 10.0样本的工作流程。

更改命名空间

在Map Suite 9.0和以前版本中,命名空间主要由ThinkGeo.MapSuite.Core和版本命名空间两部分组成,如ThinkGeo.MapSuite.WebEdition。现在ThinkGeo.MapSuite.Core基于它的功能已经分离了,现在我们有:
  • ThinkGeo.MapSuite包含用于构建Map Suite应用程序的常用和基础类,如GeographyUnit、GeoCollection等。
  • ThinkGeo.MapSuite.Drawing包含绘图相关类,如GeoImage、GeoSolidBrush等。
  • ThinkGeo.MapSuite.Layers包含一些基础类,如Layer、FeatureLayer等。
  • ThinkGeo.MapSuite.Shapes包含几何相关类,如PlygonShape、LineShape等。
  • ThinkGeo.MapSuite.Styles包含用于构建地图样式的类,如AreaStyle、LineStyle等。
                                                                                                                     【责任编辑慧都Elyn
未发布 教你如何恢复iPhone上删除的数据及iCloud和iTunes备份
by Harriet666 keys 分享 1496741895392
因为iPhone没有恢复选项,因此当你误删iPhone上的消息、照片或联系人时都是灾难性的。但现在你无需担心!只要你使用的是Apple设备,iSkysoft Toolbox for iOS(iPhone数据恢复应用程序)可以帮你轻松地恢复已删除的数据。该数据检索器可以在Mac OS和Windows上运行,除了iOS设备之外,还可以从iCloud,iTunes恢复文件。
 
iSkysoft工具箱 - iOS数据恢复使你能够恢复在各种情况下丢失的数据:被盗、锁定设备、忘记密码、出厂设置、意外删除、iOS系统崩溃等。
 
主要特征:
  • 从iOS设备中直接恢复数据
  • 从iTunes备份中恢复数据
  • 从iCloud备份中恢复数据
  • 支持iOS 10和最新的iPhone7

在本文中,我们将教你如何使用iSkysoft Toolbox for iOS恢复iPhone重要数据的具体方法,只需几个简单的步骤。

方法一:从iPhone直接恢复数据

请注意,在你意识到数据丢失后,你必须立即停止使用该设备。数据丢失后的任何进程都可以覆盖已删除或丢失的数据,这可能会导致数据永久丢失。

步骤1:在计算机上安装最新的iTunes

在运行iSkysoft Toolbox之前,你必须在计算机上安装最新版本的iTunes。
接下来,禁用iTunes自动同步:启动iTunes并找到“首选项”菜单>单击“设备”选项卡>选中“防止iPod,iPhone和iPad自动同步”选项。
现在可以在Windows PC或Mac上退出iTunes。

步骤2:将iOS设备连接到计算机

在PC上下载并安装iSkysoft Toolbox iOS。使用数据线连接iPhone与电脑连接。点击iPhone上的“信任这台电脑”。在设备连接后,点击窗口左侧的“数据恢复”。跳转到“从iOS设备恢复”窗口。

步骤3:扫描iPhone丢失数据

在“从iOS设备恢复”的主窗口中,有2个选项:从设备中删除数据和设备上的现有数据。你可以选择任意一个进行扫描。
点击“开始扫描”。扫描可能需要几分钟的时间,具体取决于iOS设备上的数据量。在扫描过程中,如果你看到你要查找的数据在那里,请单击“暂停”停止该过程。

步骤4: - 预览扫描数据

在扫描过程完成后生成并显示结果。你可以在左侧选择文件类型,然后预览找到的数据。你可以使用搜索功能直接查找所需的文件。

步骤5:从你的iPhone恢复数据

勾选复选框以选择要恢复的数据。接下来,点击当前窗口底部的“还原”。默认情况下,你选择的数据将保存到你的计算机。信息、联系人和笔记将具有以下选项:导出到计算机并还原到设备。
 

方法二:从iTunes备份中恢复数据

步骤1:选择“从iTunes备份文件中恢复”

如果你在丢失数据之前将你的iPhone备份到了iTunes中,那么你可以尝试从iTunes备份文件中恢复文件。启动iSkysoft工具箱 - iOS数据恢复,单击“从iTunes备份文件中恢复”。


步骤2:选择iTunes备份文件进行扫描

默认情况下,所有iTunes备份文件将被自动检测并显示。 选择包含你需要的数据,然后单击“开始扫描”。

步骤3:从iTunes备份文件中预览和恢复数据iTunes备份文件

在结果页面中提取并显示为类别。选择所需的,然后单击“导出到Mac”。默认情况下,数据将再次保存到计算机。如果你正在恢复联系人、短信和笔记,则可以通过USB电缆将iOS设备与计算机连接,然后将其还原到设备。
 

方法三:从iCloud备份中恢复数据

步骤1:选择“从iCloud备份文件中恢复”

这种方法只有在你丢失数据前将iPhone、iPad和iPod touch备份到iCloud之前才有效。启动iSkysoft工具箱 - iOS数据恢复,然后单击“从iCloud备份文件中恢复”。

步骤2:登录iCloud

登录到你的iCloud帐户。不要担心帐户的安全性,软件根本不会收集你的个人信息。

步骤3:下载iCloud备份文件

登录iCloud后,所有的iCloud备份文件将被检测并显示在主窗口中。选择要从中恢复数据的数据,然后单击“下载”按钮。
 
在下一个新窗口中,系统会要求你选择要下载的文件类型。与下载所有文件相比,它将缩短下载目标文件类型的下载时间。下载后,点击“下一步”。

步骤4:从iCloud备份文件中预览和恢复数据

扫描后,你可以看到所有数据以类别显示。你可以选择任何数据进行预览,然后再执行恢复。
 
总结:
总而言之,iSkysoft Toolbox for iOS是一种用于从iPhone、iCloud和iTunes备份中恢复已删除的文件和数据的轻便、快速、易于使用的解决方案。
阅读原文>>>


未发布 扫描识别工具Dynamic Web TWAIN使用教程:如何自定义扫描设置
by Harriet666 keys 分享 1512380145488
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
 
本文为你介绍Dynamic Web TWAIN中如何自定义扫描设置,欢迎收藏。
 
Dynamic Web TWAIN最新版免费下载>>>
 
我们上一节介绍了三种使用Dynamic Web TWAIN的方法:属性、方法和事件。Dynamic Web TWAIN的所有内置属性、方法和事件的完整列表可在我们的在线API文档中找到,以供参考。本文将更详细地介绍Dynamic Web TWAIN的功能:在开始扫描之前,您可以设置如何扫描文档,并更改扫描仪内置用户界面中的所有设置。以虚拟扫描器为例:
image017
 
您可能希望以相同的方式扫描您的所有归档文档。使用Dynamic Web TWAIN,您可以在JavaScript代码中自定义所有这些设置。例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DWObject.SelectSource();
/* You should customize the settings after opening a source */
DWObject.OpenSource(); 
/* Hide the User Interface of the scanner */               
DWObject.IfShowUI = false;    
/* Use the document feeder to scan in batches */     
DWObject.IfFeederEnabled = true; 
/* Scan in Simplex mode (only 1 side of the page) */    
DWObject.IfDuplexEnabled = false;   
/* Scan pages in GRAY */ 
DWObject.PixelType = EnumDWT_PixelType.TWPT_GRAY;
/* Scan pages in 200 DPI */
DWObject.Resolution = 200;  
/* Start scanning */           
DWObject.AcquireImage();

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


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

  全端社区 - 最新回复
  1. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  2. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  3. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  4. Node.js 打印vite react+go项目目录树
  5. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  6. Windows与Mac通过git ssh和rsync实现文件共享互传
  7. Windows与Mac通过git ssh和scp实现文件共享互传
  8. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  9. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  10. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别

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

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

OnceOA