未找到

【示例教程】如何用LEADTOOLS 实现一个简单的STORE SCU存储客户端
by Harriet666 keys 分享 1519722017492
leadtools提供了封装后的dicom插件,可以非常方便的开发出dicom通讯部分的组件,本篇教程讲解如何使用相关的接口进行代码编写,实现Dicom协议中的CStore存储操作。
 
1.用vs2015创建一个winform项目,引用下面的dll,并在代码里引用
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom.Scu;
using Leadtools.MedicalViewer;
using System.Net;
using System.IO;
 
2.创建下面的对象
// CStore highlevel 客户端和服务端对象
        private StoreScu _cstore;
        private DicomScp _server = new DicomScp();
 
3.初始化服务器和客户端参数,
本次用的服务器即是开发包中运行pacs服务器设置程序后,创建的L19_PACS_SCP64
private void initServer() {
            _server = new DicomScp();
            _server.AETitle = "L19_PACS_SCP64";
            _server.PeerAddress = IPAddress.Parse("10.32.1.75");
            _server.Port = 534;
            _server.Timeout = 30;
        }
private void initCstore() {
            _cstore = new StoreScu();
            _cstore.AETitle = "L19_CLIENT64";
            _cstore.HostPort = 1030;
            //存储成功后
            _cstore.AfterCStore += _cstore_AfterCStore;
        }
 
4.执行存储命令
private void 存储ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filename ="D:\\Xa.dcm";
            _cstore.Store(_server, filename);

        }

保存成功后即可在服务器管理器中,或者使用客户端查询已经存储的图像。
未发布 Edraw Office Viewer component教程(二):将Excel嵌入VB 6并使之自动化
by Harriet666 keys 分享 1494475186338
Edraw office viewer component对于开发人员来说是一个将Microsoft Excel电子表格嵌入到vb.net应用程序中的简单可靠的解决方案。
 
使用Edraw office viewer component,vb开发人员可以轻松地将一个现有的Excel电子表格嵌入到表单中,然后进行自动化。在加载表单时,开发人员可以使用Open方法从硬盘驱动器或服务器中加载* .xls、* .xlsx、* .xslm或* .cvs文件,并在窗口的某个区域中打开。Excel文件可以是只读、完全编辑或禁止保存等状态。开发人员还可以使用excel组件轻松实现excel自动化。
 
本文将演示如何逐步将Excel嵌入到VB中。如果你没有officeviewer.ocx文件,请先安装。

Office viewer component - 支持Word、Excel、PowerPoint、Visio和Project的vb6、vb.net项目

在VB 6中嵌入Excel组件

启动Visual Basic并创建一个新的标准项目。默认情况下创建Form1。
在“工具箱”面板中,右键单击空白区域。然后单击Component...
 
在弹出的对话框中,查看Edraw Office Viewer Component。
 
单击确定按钮。
Office Viewer Component便已添加到“工具栏”窗口中。

切换到VB 6窗口,然后添加组件。

该组件包括许多自定义Excel窗口的方法、事件和属性。
开发人员可以使用以下代码在Form_Load事件中打开一个excel文件。
Private Sub Form_Load()
EDOffice1.OpenFileDialog'EDOffice1.OpenWord 
“d:\ test.xlsx” 
'EDOffice1.Open“d:\ test.xls”,“Excel.Application” 
End Sub

为了保护Excel工作表不被最终用户修改,开发人员需要在DocumentOpened事件中添加以下代码。
Private Sub EDOffice_DocumentOpened()
EDOffice1.ProtectDoc 1'XlProtectTypeNormal 
End Sub
 
一些包含excel自动化的方法可用于创建或修改Excel数据。
bool ExcelAddWorkSheet(long Index); 
bool ExcelDeleteWorkSheet(long Index); 
bool ExcelActivateWorkSheet(long Index); 
长ExcelGetWorkSheetCount(); 
bool ExcelSetCellValue(long Column,long Row,BSTR Value); 
BSTR ExcelGetCellValue(长列,长行); 
bool ExcelSetRowHeight(long Row,double Height); 
bool ExcelSetColumnWidth(long Column,double Width); 
afx_msg bool ExcelDeleteRow(long Row); 
bool ExcelDeleteColumn(long Column); 
bool ExcelInsertRow(long Row); 
bool ExcelInsertColumn(long Column); 
bool ExcelInsertPageBreakInRow(long Row); 
bool ExcelInsertPageBreakInColumn(long Column); 
bool ExcelCopyToClipboard(); 
bool ExcelPasteStringToWorksheet(BSTR bstText);

 

使用Visual Basic自动化操作Excel

单击项目,然后单击引用。将显示“引用”对话框。向下滚动列表,找到Microsoft Excel object库(Microsoft Excel xx.x Object库),然后选择引用Excel。如果列表中没有正确的Excel Object库,请确认你是否安装了合适的Excel版本。
单击“确定”关闭“引用”对话框。
将CommandButton添加到Form1。
在Form1的代码窗口中,插入以下代码:
Private Sub Command1_Click()
 
Dim oXL As Excel.Application
Set oXL = EDOffice1.GetApplication()
Dim oWB As Excel.Workbook
Set oWB = EDOffice1.ActiveDocument()
Dim oSheet As Excel.Worksheet
Dim oRng As Excel.Range
Set oSheet = oWB.ActiveSheet
oSheet.Cells(1, 1).Value = "First Name"
oSheet.Cells(1, 2).Value = "Last Name"
oSheet.Cells(1, 3).Value = "Full Name"
oSheet.Cells(1, 4).Value = "Salary"
' Format A1:D1 as bold, vertical alignment = center.
With oSheet.Range("A1", "D1")
.Font.Bold = True
.VerticalAlignment = xlVAlignCenter
End With
' Create an array to set multiple values at once.
Dim saNames(5, 2) As String
saNames(0, 0) = "John"
saNames(0, 1) = "Smith"
saNames(1, 0) = "Tom"
saNames(1, 1) = "Brown"
saNames(2, 0) = "Sue"
saNames(2, 1) = "Thomas"
saNames(3, 0) = "Jane"
saNames(3, 1) = "Jones"
saNames(4, 0) = "Adam"
saNames(4, 1) = "Johnson"
' Fill A2:B6 with an array of values (First and Last Names).
oSheet.Range("A2", "B6").Value = saNames
' Fill C2:C6 with a relative formula (=A2 & " " & B2).
Set oRng = oSheet.Range("C2", "C6")
oRng.Formula = "=A2 & "" "" & B2"
' Fill D2:D6 with a formula(=RAND()*100000) and apply format.
Set oRng = oSheet.Range("D2", "D6")
oRng.Formula = "=RAND()*100000"
oRng.NumberFormat = "$0.00"
' AutoFit columns A:D.
Set oRng = oSheet.Range("A1", "D1")
oRng.EntireColumn.AutoFit
oXL.UserControl = True
End Sub
 
按F5运行项目。Excel将自动填充excel单元格。
自动化Excel时要注意的一点是Excel Macro Recorder。它仍然在Word 2007中,但隐藏在开发者功能区栏。
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。
未发布 矢量图形引擎库VectorDraw Developer Framework v7.7012.0.2发布丨附下载
by Harriet666 keys 分享 1499325700094
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
 
VectorDraw Developer Framework点击下载>>>
 
VectorDraw Developer Framework(VDF)v7.7012.0.2更新内容:

WebJS

新增需求(7.7012.0.1)
  • 70001107 支持vdPolyface对象的3d形状和GradientColors
  • 70001111 获取实体边界框
漏洞(7.7012.0.1)
  • 70001098 vdSelectionModified事件返回不正确
  • 70001108 具有厚度的vdPolyline的osnaps无法显示

Engine

新增需求(7.7012.0.1)
  • 70001096 无法选择带有窗口选择的多面体
  • 70001105 改进GradientColors
  • 70001106 cmdMultiline自我解析
漏洞(7.7012.0.1)
  • 70001102编辑文字时EditText的问题
  • 70001109如果在没有GetGripSelection方法的情况下添加选择,则不会引发GripModified事件
  • 70001110 Mtext呈现不正确
  • 70001113 3D模式中的文本线型显示错误

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

VectorDraw File Converter

未发布 MailBee.NET Objects接收电子邮件(POP3)教程四:访问电子邮件附件
by Harriet666 keys 分享 1501232156519
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
MailBee.NET Objects介绍和试用点击查看>>>
 
本文主要介绍了如何访问电子邮件附件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

 
所有邮件附件都存储在MailMessage.Attachments集合中。该集合还列出了邮件中包含的嵌入图像和其他文件。
集合中附件的索引为零。例如,下面的代码打印第一个附件的名称:
C#
Console.WriteLine("Attachment name is " + msg.Attachments[0].Name);
VB.NET
Console.WriteLine("Attachment name is " + msg.Attachments(0).Name)
要访问附件,您需要从服务器下载整个邮件(不仅仅是标题)。
你可以检查邮件是否附件如下:
C#
Pop3 pop = new Pop3();
// Download entire message
MailMessage msg = pop.DownloadEntireMessage(1);
if (msg.HasAttachments)
{
        // The message has at least one attachment
}

VB.NET
Dim pop As New Pop3()
' Download entire message
Dim msg As MailMessage =  pop.DownloadEntireMessage(1) 
if (msg.HasAttachments) Then
        ' The message has at least one attachment
End If
在某些情况下,即使只下载了邮件开头部分,也可以使用MailMessage.HasAttachments属性。
未发布 扫描识别控件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服务中用于安全连接的密钥交换和密码。
未发布 图像注释插件VintaSoftAnnotation.NET Plug-in更新至v8.5,增加注释样式
by Harriet666 keys 分享 1495531431279
VintaSoftBarcode.NET SDK是一个为软件开发人员开发的专业.NET条形码读取器和条形码生成器组件。它可以在数字图像和PDF中识别和读写1D&2D条形码。目前VintaSoftBarcode.NET SDK支持三种版本:Standard edition, Standard + WPF edition 和Silverlight edition。
 
【VintaSoftBarcode.NET SDK v9.2最新版下载】

更新内容:

  • 创建新的Vintasoft.Barcode.Web.Services组件,包含了用于读取和写入条形码的独立Web服务。该Web服务允许为任何.NET兼容的Web平台快速创建Web服务,例如ASP.NET WebForms、ASP.NET MVC、ServiceStack。
  • 创建新版Vintasoft.Barcode.Web.Api2Controllers,包括用于在ASP.NET MVC 5中读取和写入条形码的Web API 2控制器。
  • 已验证Vintasoft.Barcode.js的JavaScript代码与jQuery 2和3的兼容性。
  • 创建新的演示应用程序,演示了如何在ASP.NET MVC 5中读取和写入条形码。
  • Silverlight 4停止使用。
  • 添加了Visual Studio .NET 2017演示项目。
未发布 CAD .NET v12发布,提高GDI+可视化速度并可导入AutoCAD®DWG 2018丨附下载
by Harriet666 keys 分享 1497254012640
CAD .NET 12,一个新版本的.NET库,可与DWG、DXF和其他CAD文件一起使用。
 
CAD .NET新版本大大提高了GDI+可视化的速度。当加载具有复杂结构的大文件时可以很明确的体验到。例如,包含大量实体的一些文件的可视化速度现在提升了十倍。
 
更重要的是,CAD .NET现在可以导入最近发布的最新DWG版本的AutoCAD®DWG 2018。
 
此外,CAD .NET使用非Unicode SHX文本和形状的方式已经大大改善。这种改进对于使用本地非Unicode字体的系统尤其重要,例如德语、法语、希伯来语和其他语言的特殊字符。
 
【CAD .NET 12最新版点击下载>>>】

32aead6ce62144f686fc3ec3e6920c00ojpg

CAD .NET 12包含的改进和修复的内容列表:
  • GDI+可视化速度大大提高
  • 导入AutoCAD®DWG 2018
  • 改进非Unicode SHX文本/形状支持
  • Bug修复

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

1
未发布 快速制作演示动画的工具TurboDemo常见问题合集(二)
by Harriet666 keys 分享 1505467594160
使用TurboDemo遇到了问题?我们的FAQ将帮助你找到答案。
TurboDemo

8、怎样添加超链接?

  1. 使用“绘制对象”添加您希望创建超链接的区域(如手绘图形、矩形或椭圆)
  2. 双击您定义的对象以将它指定给URL
  3. 您可以将互联网地址、电子邮件地址或任何您需要的超链接插入到“URL”字段中
如果用户点击已定义的区域,URL将被打开。您可以从演示示例中打开外部网页或直接开始运行另一个演示示例。
 

9、怎样调整工程大小?

在您完成您的工程后,如果需要您可以改变工程的大小。您可以缩小您工程的大小也可将它扩大。您可在“文件|调整工程大小”菜单中运行该功能

我们建议您在添加任何对象(如,备注、提示气球等)前调整工程大小,因为这将影响对象定位。
 

10、怎样将声音插入幻灯?

几种添加声音的方法:
  • 当您在进行大纲视图浏览时,您可以点击特定幻灯的喇叭图标
  • 在单个幻灯模式中,您能在工具条中找到喇叭图标
使用这两个图标,“音频向导”将提示您可以录制或导入声音。向导的“高级模式”允许您访问具备附加功能的“音频编辑器”,这些附加功能包
括复制、剪切、规整化等。
 

11、怎样隐藏或更改鼠标指针?

您可以使用位于工具条中或在“幻灯片|隐藏鼠标指针”菜单中的图标隐藏鼠标指针。可通过双击幻灯中或在“幻灯片|选择鼠标指针
”菜单中的指针图标改变鼠标指针外观。
 

12、在更改了鼠标指针的位置后,鼠标指针的表现奇怪。

在解释此问题前,我们需要解释TurboDemo工作原理:
  • “蓝圈”表示鼠标指针的起始点,“红圈”表示鼠标指针的结束点
  • TurboDemo将自动统计这些点之间的路径
  • 当您使用TurboDemo制作屏幕截图时,软件将记录当前鼠标指针的位置(起始点)
  • 在抓取下一张屏幕截图时,TurboDemo将记录鼠标指针现在的位置以及新坐标(结束点)
  • 鼠标指针在一张幻灯中的结束点通常是下一张幻灯的起始点。所以照例所说,当您在一张幻灯中移动了起始点(蓝圈),您会发现在上一张的结束
  • 点(红圈)位置也改变了
 

13、什么是“鼠标悬浮”?

“鼠标虚浮”就是当您在演示过程中将鼠标移动到特定位置时向您显示提示气球或图片的对象。这通常用在您不想通过会遗留在幻灯上的备注与提
示气球解释屏幕上不同内容的时候。
 

14、当播放演示示例时没有导航。

这通常发生在您用全屏制作演示示例的时候。问题就在于导航条都是放在演示文件的底部或右侧,所以就看不见导航了。您可以使用调整大小选项
(“文件|调整工程大小”菜单) 缩小工程的大小,这样就能看见导航条;或您可以在导出工程时选择一个隐藏的控制面板。
未发布 矢量图形处理控件CAD .NET v12.1发布,可以导出到DWG
by Harriet666 keys 分享 1514189629875
CAD .NET v12.1新版本发布,这个版本的最大的改进是可以导出到DWG。CAD .NET中添加了新的CADtoDWG类。现在,您可以将文件保存到DXF中,但也可以通过CAD .NET软件包中附加的动态链接库将文件保存到DWG中。
 
CAD .NET v12.1最新版下载>>>

8cb19241d2ec443ea63dfae7e0d5f5faojpg

CAD .NET v12.1中的功能改进列表:
  • 使用添加的附加动态链接库导出为DWG格式
  • 支持ARC_DIMENSION,添加了LARGE_RADIAL_DIMENSION维度类型
  • 添加xplode、 Join、 Trim visual工具
  • 用于GDI+可视化模式的3D捕捉
  • 改进:
    · 线型
    · 折线
    · CADHelix
    · CADLayer
    · CADMInsert
    · CADProxy
    · CADTrace
所有这些功能都可以在CAD .NET的新版中进行测试。您可以通过在我们的网站进行下载>>>
未发布 【示例教程】如何用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


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