未发布 Excel组件包TMS FlexCel for VCL & FireMonkey v6.17.1.0发布丨附下载
v6.17.1.0
修复:
v6.17.0.0
新增:
完全支持xlsx文件中的Excel表
可将自动图形添加到图表
改进:
在TFlxFormulaErrorValue中支持#GETTING_DATA错误
支持使用INDIRECT函数返回数组
加载字体以导出到PDF时减少内存的使用
现在TExcelFile.RenderObject可以在组内渲染形状,并使用objectPath参数指定对象的名称
改进了包含数千个超链接的报告的性能
FlexCel现在将保留xlsx文件中的嵌入式OLE对象
Github中提供的所有示例
【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】
活动时间:10月1日-10月30日

未发布 界面控件包Essential Studio for Windows Forms 2017 v3发布丨附下载 Essential Studio for Windows Forms界面控件包含了高性能的Windows应用程序开发中所需的所有控件,如Grids、Charts、Gauges、Menus、Calendars、Editors等等。 到目前为止,我们开发Windows Forms 控件包已达十几年,所以该控件包是功能最齐全的控件集。除此之外,Essential Studio for WinForms还包含了一些特有控件,使您可以为应用程序添加Excel、Word和PDF格式文件的浏览和创建功能。
Essential Studio for Windows Forms 2017 v3让开发人员创建更好的应用程序,并增加了DocIO的内容控件,支持消息框的定制以及标记PDF的功能。
DOCIO
内容控件
DocIO能够在Word文档中创建和修改内容控件,并提供了一种设计具有以下功能文档的方法:
创建一个类似表单的用户界面。
防止用户编辑内容控件的内容。
将内容绑定到XML数据。
Word转换PDF增强功能
DocIO现在可以在Azure网站中将Word文档转换为PDF。
DocIO现在可以将具有旋转图像的Word文档转换为原始格式的PDF格式。
DocIO现在可以将镜像边距的Word文档转换为原始格式的PDF格式。
高级消息框
定制
支持自定义消息框元素中的字体,如标题、细节和按钮。
PDF
压缩现有的PDF文档
减小PDF文件的大小。
标记PDF
通过允许用户创建PDF/通用可访问性(PDF / UA)或符合章节508的PDF文档来提供辅助功能。
演示
支持插入列
演示文稿现在允许在PowerPoint演示文稿中的表中插入列。
PDF和图像转换增强功能
演示文稿现在可以将具有旋转和嵌套组形状的PowerPoint演示文稿精确转换为PDF或图像格式。
XLSIO
过滤器功能增强
未发布 AutoVue使用教程:如何在64位Linux上安装AutoVue 很多用户在Linux 64位上使用AutoVue时会出现安装方面的问题。在Linux 64位上安装AutoVue(这是一个32位应用程序)可能很棘手,因为AutoVue将要求某些库是32位的而不是64位。在许多情况下,服务器会将由于缺少32位库的相关问题记录下来。AutoVue需要这些库:32位(libGLU,libGL,libz,libbz2,libXt,libXp,libXtst和libXrender)。
你可以通过使用locate命令来检查特定库丢失的是32位还是64位。例如,找到libGL应该返回:
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
/usr/lib/libGLU.so
/usr/lib/libGLU.so.1
/ usr / lib /libGLU.so.1.3.060501
libGL的位置如下:
/usr/lib64/libGL.so.1
这将表明你已安装64位库,AutoVue还需要32位库。
未发布 GIS软件开发包Map Suite v10.0发布,支持Windows、Linux和macOS多平台 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版本上。
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功能都可能是一个单独的包。你可以选择性地使用项目所需的软件包,并将应用程序控制在最小。
更简单的试用许可证
认证和许可是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等。
未发布 扫描识别工具Dynamic Web TWAIN使用教程:属性/方法/事件介绍 Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容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的用户带来帮助,接下来还会有更多的相关教程,敬请期待!
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程七:添加多个附件 MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
本文主要介绍了如何使用MailBee.NET Objects在邮件中添加多个附件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
| C#: oMailer.Message.Attachments.Add(@"C:\Temp\report.doc"); oMailer.Message.Attachments.Add(@"C:\Temp\prices_2005.xls", "prs2005.xls"); oMailer.Message.Attachments.Add(@"C:\Temp\my_photo.jpg", "pic1.jpg","<12s4a8a8778c$5664i1b1$ir671781@tlffmdqjobxj>"); oMailer.Message.Attachments.Add(@"C:\Temp\john_doe_photo.jpg", "pic2.jpg","<12s4a8a8932r$5664i1t1$iy671661@yljfmkqjghxu>", "image/gif", null, NewAttachmentOptions.Inline, MailTransferEncoding.Base64); |
VB.NET: oMailer.Message.Attachments.Add("C:\Temp\report.doc") oMailer.Message.Attachments.Add("C:\Temp\prices_2005.xls", "prs2005.xls") oMailer.Message.Attachments.Add("C:\Temp\my_photo.jpg", "pic1.jpg","<12s4a8a8778c$5664i1b1$ir671781@tlffmdqjobxj>") oMailer.Message.Attachments.Add("C:\Temp\john_doe_photo.jpg", "pic2.jpg", "<12s4a8a8932r$5664i1t1$iy671661@yljfmkqjghxu>", "image/gif", Nothing, NewAttachmentOptions.Inline, MailTransferEncoding.Base64) |
上面的示例向邮件添加了四个附件。第一个文档作为report.doc附加。第二个文件作为附带指定的CID的prs2005.xls。第三个附件是一张图片,也有自己的CID。最后一个附件被强制作为Base64编码中的内联对象。
如果附件被认为是一个内联对象,它将与邮件正文一起显示。但是,如果开发人员需要从邮件正文的任何地方引用此附件,则应将相应的CID分配给此附件。
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。