VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
VectorDraw Developer Framework点击下载>>>
| 版本 | 需求 |
7.7011.0.1 | 70001006 支持webgl渲染模式的webgl图像 |
| 70001016 支持webgl节剪辑 | |
| 70001019 支持使用scriptCommand hatch绘制阴影边框 | |
| 70001024 使用鼠标进行缩放 | |
| 70001029 实体选择回调 |
| 版本 | 需求 |
| 7.7011.0.1 | 70001015 具有相同名称的vdXproperties导出不正确 |
| 版本 | 需求 |
| 7.7011.0.1 | 70001009 DXF代理对象读取出错 |
| 70001020 某些DWF文件未正确打开 | |
| 70001025 DGN Xrefs的问题 | |
| 70001033 Layout paper未正确初始化 | |
| 7.7011.0.2 | 70001040 SPLines在DWG中未正确导出 |
| 版本 | 漏洞 |
| 7.7011.0.1 | 70001011 HANDLE类型的XProperty在DXF中未正确导出 |
| 版本 | 需求 |
| 7.7011.0.1 | 70001008 改进ClearEraseItems方法的速度 |
| 70001012 MergeSelection方法用于传递对象的GUIDs | |
| 70001027 虚拟机中的OpenGL问题 | |
| 70001034 能够设置UCS图标字母的颜色 | |
| 7.7011.0.2 | 70001036 外部引用对话框有一个支持路径按钮 |
| 版本 | 漏洞 |
| 7.7011.0.1 | 70001007 当文本具有斜角时,EditText和AddText命令不会正确显示光标 |
| 70001010 点上的多点折线未正确显示 | |
| 70001013 Inserts Inside Blocks层是处于ON状态时仍不可见 | |
| 70001014 图层组和滤镜在删除后仍会保存到DXF中 | |
| 70001017 图像在nonused Block中使用时会被删除 | |
| 70001018 线型折线显示不正确 | |
| 70001021 RenderToGraphics和RenderToDC会清除目标图形上下文的背景 | |
| 70001022 尺寸对象未正确导入PDF | |
| 70001026 在vdraw Idle中很少会随机出现exeption | |
| 70001030 Bhatch命令为创建的polyhatch添加白色作为fillcolor | |
| 70001031 用户选择部分文字的拉伸命令会出现错误 | |
| 70001032 vdMtext对象没有对齐 | |
| 7.7011.0.2 | 70001035 vdLayout DrawCCSAxis showOnOrigin参数无法正常工作 |
| 70001037 用户尝试打开特定文件后应用程序瘫痪 | |
| 70001038 图像不能从EMF正确导入 | |
| 70001039 Block名称不适用于DWG | |
| 70001042 具有Shape段的LineTypes不能在3d中与ExcludeFromList Draw3DFlag正常显示 |
试用、下载、了解更多产品信息请点击"咨询在线客服"
















using System.Windows.Forms; using Leadtools; using Leadtools.Codecs; using Leadtools.WinForms; using Leadtools.Annotations;
RasterImageViewer viewer = new RasterImageViewer();
RasterImage img;
AnnAutomationManager annger;
AnnAutomation automation;private void initControl() {
Support.SetLicense();
viewer.Dock = DockStyle.Fill;
panel1.Controls.Add(viewer);
viewer.HorizontalAlignMode = RasterPaintAlignMode.Center;
viewer.VerticalAlignMode = RasterPaintAlignMode.Center;
loadImage("qwe.jpg");
if (viewer.Image != null)
{
// create and setup the automation manager
annger = new AnnAutomationManager();
// Instruct the manager to create the default (all) automation objects.
annger.CreateDefaultObjects();
// create the toolbar and add it to the form
annger.CreateToolBar();
Controls.Add(annger.ToolBar);
// setup the automation (will create the container as well)
automation = new AnnAutomation(annger, viewer);
// add an event handler for changes to the current designer
automation.CurrentDesignerChanged += new EventHandler(automation_CurrentDesignerChanged);
// setup this automation as the active one
automation.Active = true;
}
toolStripComboBox1.SelectedIndex = 0;
}
private void loadImage(string filename)
{
img = new RasterCodecs().Load(filename);
viewer.Image = img;
}
private void automation_CurrentDesignerChanged(object sender, EventArgs e)
{
AnnAutomation automation = sender as AnnAutomation;
AnnButtonRunDesigner buttonRunDesigner = automation.CurrentDesigner as AnnButtonRunDesigner;
if (buttonRunDesigner != null)
buttonRunDesigner.Run += new EventHandler(buttonRunDesigner_Run);
}private void buttonRunDesigner_Run(object sender, AnnRunDesignerEventArgs e)
{
if (e.OperationStatus == AnnDesignerOperationStatus.End)
{
AnnButtonObject btn = e.Object as AnnButtonObject;
MessageBox.Show(string.Format("Button with text = {0} was clicked!", btn.Text));
}
}
private void loadImage(string filename)
{
img = new RasterCodecs().Load(filename);
viewer.Image = img;
}
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
annger.UserMode = (toolStripComboBox1.SelectedIndex == 0) ? AnnUserMode.Design : AnnUserMode.Run;
}
此次更新和改进仅适用于Windows Edition。
用于1D条形码的新de-blur算法,可以提高在模糊图像中扫描线性条形码时的精度。
新的多线程处理可以提高1D条形码的扫描精度。
添加了新的API,你可以指定页码、条形码区域、条形码宽度、条形码高度、条形码模块大小和条形码角度来进行条形码检测。这大大提高了解码工作和条形码读取的效率。

DWObject.OpenSource(); DWObject.IfShowUI = false; DWObject.IfDisableSourceAfterAcquire = true; DWObject.PixelType = EnumDWT_PixelType.TWPT_BW; //Black - White image : EnumDWT_PixelType.TWPT_BW, GRAY image: EnumDWT_PixelType.TWPT_GRAY, RGB image: EnumDWT_PixelType.TWPT_RGB DWObject.AcquireImage();
function BeginScan(){
DWObject.OpenSource();
DWObject.IfShowUI = false; //set without user interface
DWObject.IfDisableSourceAfterAcquire = true;
DWObject.AcquireImage();
}
function DWObject_OnPostTransfer(){
DWObject.SaveAsBMP("C:\\temp.bmp",0);
}DWObject.SelectSource(); DWObject.OpenSource(); DWObject.IfShowUI = false; //Set Image Layout DWObject.Unit = EnumDWT_UnitType.TWUN_INCHES; DWObject.SetImageLayout(0, 0, 5, 5); DWObject.AcquireImage();
DWObject.OpenSourceManager();
for(i = 0, i<=DWObject.SourceCount - 1,i++){
if (DWObject.GetSourceNameItems(i) == "Specified device name")
DWObject.SelectSourceByIndex (i);
}
//if can't find the specified source, it'll select default source
DWObject.AcquireImage(); DWObject.IfShowUI = false; DWObject.IfDisableSourceAfterAcquire = true; DWObject.OpenSource(); DWObject.IfShowIndicator = false; DWObject.AcquireImage();
DWObject.SelectSource();
DWObject.OpenSource();
//Set XRESOLUTION current value.
DWObject.Capability = 0x1118; //ICAP_XRESOLUTION
DWObject.CapType = 5; //TWON_ONEVALUE
DWObject.CapValue = 300;
if (DWObject.CapSet == false){
alert( "Failed to set the x-resolution. " + DWObject.ErrorString);
}
//Set YRESOLUTION current value.
DWObject.Capability = 0x1119; //ICAP_YRESOLUTION
DWObject.CapType = 5; //TWON_ONEVALUE
DWObject.CapValue = 200;
if (DWObject.CapSet == false){
alert( "Failed to set the y-resolution." + DWObject.ErrorString);
}
DWObject.AcquireImage();DWObject = document.getElementById("dwtcontrolContainer");
//dwtcontrolContainer is the id of the Dynamic Web TWAIN on the page (An object or an embed).
function btnScan_onclick()
{
DWObject.SelectSource();
DWObject.OpenSource();
DWObject.AcquireImage();
}
function btnUpload_onclick()
{
var strActionPage;
var strHostIP;
var CurrentPathName = unescape(location.pathname); // get current PathName in
plain ASCII
var CurrentPath = CurrentPathName.substring(0, CurrentPathName.lastIndexOf("/")
+ 1);
strActionPage = CurrentPath + "SaveToFile.aspx"; //the ActionPage's file path
strHostIP = "localhost"; //The host's IP or name
DWObject.HTTPPort = 80;
DWObject.HTTPUploadThroughPost(strHostIP,0,strActionPage,"imageData.tif");
if (DWObject.ErrorCode != 0)
alert(DWObject.ErrorString);
else //succeed
alert("Image Uploaded successfully");
}var iDocumentCounter =0;
function BeginScan(){
DWObject.OpenSource();
DWObject.IfShowUI = false;
DWObject.IfDisableSourceAfterAcquire = true;
if(DWObject.Duplex != TWDX_NONE)
DWObject.IfDuplexEnabled = true; //enable duplex
DWObject.IfFeederEnabled = true;
if (DWObject.IfFeederEnabled == true){
DWObject.XferCount = -1;
if(DWObject.IfFeederLoaded == True)
DWObject.AcquireImage();
}
}
function DWObject_OnPosttransfer(){
iDocumentCounter = iDocumentCounter + 1;
if(DWObject.SaveAsBMP("C:\\Image\\" + iDocumentCounter + ".bmp", 0) == false)
alert( DWObject.ErrorString);
}function btnUpload_onclick()
{
DWObject.HTTPPort = 80;
DWObject.IfSSL = false; // if 80 is the port number of
non-secure port
/*
DWObject.HTTPPort = 443;
DWObject.IfSSL = true; // if 443 is the port number of secure
port
*/
DWObject.HTTPUploadThroughPost("127.0.0.1", 0,
"/SaveToFile.php", "imageData.jpg");
if (DWObject.ErrorCode != 0)
alert(DWObject.ErrorString);
else //succeed
alert("Successful");
}function Scan_Click(){
DWObject.AcquireImage();
}
function DWObject_OnPostTransfer(){
DWObject.CloseSource();
DWObject.IfTiffMultiPage = true;
DWObject.SaveAsTIFF("SaveAsTIFF.tif", 0);
if (DWObject.ErrorCode != 0)
alert (DWObject.ErrorString);
else //succeed
alert ("Successful");
}function NextImage_Click(){
if (DWObject.HowManyImagesInBuffer == 0)
alert ("There is no image in buffer");
DWObject.CurrentImageIndexInBuffer += 1;
}
13.如何进行双面扫描?
function DuplexScan_Click(){
DWObject.SelectSource();
DWObject.OpenSource();
DWObject.IfShowUI = false;
DWObject.IfDuplexEnabled = true; //enable duplex
DWObject.AcquireImage();
} Microsoft发布了一组工具,使用他们的dotnet-new工具和使用Node.js的灵活方法可以快速生成基于JavaScript的Web 应用程序。
dotnet-new工具是.NET Core工具的一部分,用于使用简单的命令启动一个新项目。作为ASP.NET Core JavaScript Services的一部分,Web开发人员现在可以使用相同的命令来启动新的单页应用程序(SPA)。
