
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的用户带来帮助,接下来还会有更多的相关教程,敬请期待!
Microsoft发布了一组工具,使用他们的dotnet-new工具和使用Node.js的灵活方法可以快速生成基于JavaScript的Web 应用程序。
dotnet-new工具是.NET Core工具的一部分,用于使用简单的命令启动一个新项目。作为ASP.NET Core JavaScript Services的一部分,Web开发人员现在可以使用相同的命令来启动新的单页应用程序(SPA)。





import io.javalin.Javalin
funmain(args: Array) {
val app = Javalin.create().port(7000)
app.get("/") { ctx -> ctx.result("Hello World") }
}


















1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <title data-filtered="filtered">Hello World</title><script type="text/javascript" src="Resources/dynamsoft.webtwain.initiate.js" data-filtered="filtered"> </script><script type="text/javascript" src="Resources/dynamsoft.webtwain.config.js" data-filtered="filtered"> </script><input type="button" value="Scan" onclick="AcquireImage();"><div id="dwtcontrolContainer"> </div><script type="text/javascript" data-filtered="filtered"> var DWObject; function Dynamsoft_OnReady(){ DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); } function AcquireImage(){ if(DWObject) { DWObject.IfDisableSourceAfterAcquire = true; DWObject.SelectSource(); DWObject.OpenSource(); DWObject.AcquireImage(); } } </script> |
1 | Dynamsoft.WebTwainEnv.Containers = [{ContainerId:'dwtcontrolContainer',Width:270,Height:350}]; |
1 | Dynamsoft.WebTwainEnv.Containers = [{ContainerId:'dwtcontrolContainer',Width: '50%',Height:350}]; |

1 2 3 4 5 6 | .DYNLogo { background:url(logo.gif) left top no-repeat; width:159px; height:39px; } |

1 2 3 4 5 6 7 8 9 10 11 12 | function OnWebTwainNotFoundOnWindowsCallback(ProductName, InstallerUrl, bHTML5, bIE, bSafari, bSSL,strIEVersion) { } /* This callback is triggered when Dynamic Web TWAIN is not installed on a PC running Windows */ function OnWebTwainNotFoundOnMacCallback(ProductName, InstallerUrl, bHTML5, bIE, bSafari, bSSL,strIEVersion) { } /* This callback is triggered when Dynamic Web TWAIN is not installed on a MAC */ function OnWebTwainOldPluginNotAllowedCallback(ProductName) { } /* This callback is triggered when Dynamic Web TWAIN is disabled by a non-IE browser */ function OnWebTwainNeedUpgradeCallback(ProductName, InstallerUrl, bHTML5, bMac, bIE, bSafari, bSSL,strIEVersion) { } /* This callback is triggered when Dynamic Web TWAIN installed on the machine is older than the //one onthe server and upgrade is needed */ |
本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!
我们针对 Visual Studio 2017 的多个关键领域进行了重点研发——包括改进基础部件、提供五星级的云和移动开发体验,以及提升 DevOps 功能,以确保 Visual Studio 2017 可以助力每一位开发者在各种平台上开发各类应用。
在发展 Visual Studio 2017 这一全新版本时,我们将云和移动开发置于最重要的位置。为了简化云开发流程,内置的各项工具将为您提供有关.NET Core、Azure 应用、微服务、容器等应用开发的完整集成功能,甚至现在可以更轻松地由 IDE 直接开发和部署 Azure 应用和服务。Visual Studio 2017 with Xamarin 让你能够通过先进的调试和分析工具更加快速地为安卓、iOS 和 Windows 平台开发移动应用。
我们也重视聆听用户心声,并清楚地了解到用户希望 Visual Studio 变得更为快速、更精简,即使所面对的应用开发和项目愈加庞大。因此,我们将为用户提供全新的安装体验,让一切变得轻便而模块化。为提高 Visual Studio 的性能,我们还增强了多项功能。Visual Studio 2017 还将交付多项全新特性,帮助开发团队能够轻松地实践现代化的 DevOps 做法,更为快速而持续地应对市场变化。为了帮助开发者更好地把自己的数据库嵌入 DevOps,加速发布周期,Redgate Data Tools 工具现已加入 Visual Studio Enterprise 2017 服务当中。
From: POSTMASTER@domain.com To: jdoe@domain.com Subject: Message Delivery Failure MailEnable: Message Delivery Failure. The following recipient(s) could not be reached: Recipient: [SMTP: bill@domain.com] Reason: The message could not be delivered because the domain name (domain.com) does not appear to be registered.
From: MAILER-DAEMON@domain.local To: jdoe@localhost Subject: Undeliverable mail: Failed to deliver to ''
// Create POP3 object
Pop3 pop = new Pop3();
// Enable logging to file
pop.Log.Enabled = true;
pop.Log.Filename = @"C:\log.txt";
pop.Log.Clear();
// Connect to POP3 server
pop.Connect("mail.domain.com");
pop.Login("bounce", "secret");
// Download headers and bodies of all messages.
MailMessageCollection msgs = pop.DownloadMessageHeaders(1, -1, -1);
// Loop through all messages in the mailbox
foreach (MailMessage msg in msgs)
{
string strLine = msg.BodyPlainText;
Console.WriteLine("From: " + msg.From.Email);
// Get failed email address
string str_invalid_email = GetInvalidEmailAddressME(msg);
// If str_invalid_email is non-empty then failed email
// address was found
if (str_invalid_email.Length > 0)
{
// Remove failed email from database
RemoveEmailFromDatabase(str_invalid_email);
// Display invalid adress
Console.WriteLine("Invalid email: " + str_invalid_email);
// Delete bounced email from server to avoid
// processing it next time
pop.DeleteMessage(msg.IndexOnServer);
}
}
// Disconnect from POP3 server
pop.Disconnect();
// The function checks whether the message is bounced and extracts
// failed address
// from bounced message. Valid only for MailEnable servers
static string GetInvalidEmailAddressME(MailMessage msg)
{
string str_invalid_email = msg.BodyPlainText;
// Check if this is a bounced message report
if (msg.Subject.IndexOf("Delivery Failure") == -1)
{
return "";
}
if (msg.From.ToString().IndexOf("POSTMASTER") == -1)
{
return "";
}
// Now we're sure this is a bounced message report
int i_start;
i_start = str_invalid_email.IndexOf("SMTP:");
// Check if bounced message report contains "Recipient:" field
if (i_start == -1)
{
return "";
}
// Get failed address
i_start += 5;
i_end = str_invalid_email.IndexOf("]",i_start);
str_invalid_email.Substring(i_start, i_end);
return str_invalid_email;
}
// The function checks whether the message is bounced and extracts
// failed address
// from bounced message. Valid only for Communigate Pro servers
static string GetInvalidEmailAddressCP(MailMessage msg)
{
string str_invalid_email = msg.BodyPlainText;
// Check if this is a bounced message report
if (msg.Subject.IndexOf("Undeliverable mail") == -1)
{
return "";
}
if (msg.From.ToString().IndexOf("MAILER-DAEMON") == -1)
{
return "";
}
// Now we're sure this is a bounced message report
int i_start;
i_start = str_invalid_email.IndexOf("to '<");
// Check if bounced message report contains
// "Failed to deliver to " field
if (i_start == -1)
{
return "";
}
// Get failed address
i_start += 5;
i_end = str_invalid_email.IndexOf("]",i_start);
str_invalid_email.Substring(i_start, i_end);
return str_invalid_email;
}
// This function must remove (or disable) specified
// email address from mailing list
static void RemoveEmailFromDatabase(string str_invalid_email)
{
// TODO: Add your code here
}Dim pop As New Pop3
' Enable logging to file
pop.Log.Enabled = True
pop.Log.Filename = "C:\log.txt"
pop.Log.Clear()
' Connect to POP3 server
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")
' Download headers and bodies for all messages.
Dim msgs As MailMessageCollection = pop.DownloadMessageHeaders(1, -1, -1)
' Loop through all messages in the mailbox
Dim msg As MailMessage
For Each msg In msgs
Dim strLine As String = msg.BodyPlainText
Console.WriteLine("From: " + msg.From.Email)
' Get failed email address
Dim str_invalid_email As String = GetInvalidEmailAddressME(msg)
' If str_invalid_email is non-empty then failed email
' address was found
If str_invalid_email.Length > 0 Then
'Remove failed email from database
RemoveEmailFromDatabase(str_invalid_email)
' Display invalid address
Console.WriteLine("Invalid email: " & str_invalid_email)
' Delete bounced email from server to avoid
' processing it next time
pop.DeleteMessage(msg.IndexOnServer)
End If
Next
Console.ReadLine()
' Disconnect from POP3 server
pop.Disconnect()
' The function checks whether the message is bounced and extracts
' failed address
' from bounced message. Valid only for MailEnable servers
Function GetInvalidEmailAddressME(ByVal msg As MailMessage) As String
Dim str_invalid_email As String = msg.BodyPlainText
' Check if this is a bounced message report
If msg.Subject.IndexOf("Delivery Failure") = -1 Then
Return ""
End If
If msg.From.ToString().IndexOf("POSTMASTER") = -1 Then
Return ""
End If
' Now we're sure this is a bounced message report
Dim i_start As Integer, i_end As Integer
i_start = str_invalid_email.IndexOf("SMTP:")
' Check if bounced message report contains "Recipient:" field
If i_start = -1 Then
Return ""
End If
' Get failed address
i_start += 5
i_end = str_invalid_email.IndexOf("]", i_start)
str_invalid_email.Substring(i_start, i_end)
Return str_invalid_email
End Function
' The function checks whether the message is bounced and extracts
' failed address
' from bounced message. Valid only for Communigate Pro servers
Function GetInvalidEmailAddressCP(ByVal msg As MailMessage) As String
Dim str_invalid_email As String = msg.BodyPlainText
' Check if this is a bounced message report
If msg.Subject.IndexOf("Undeliverable mail") = -1 Then
Return ""
End If
If msg.From.ToString().IndexOf("MAILER-DAEMON") = -1 Then
Return ""
End If
' Now we're sure this is a bounced message report
Dim i_start As Integer, i_end As Integer
i_start = str_invalid_email.IndexOf("to '<")
' Check if bounced message report contains
' "Failed to deliver to " field
If i_start = -1 Then
Return ""
End If
' Get failed address
i_start += 5
i_end = str_invalid_email.IndexOf("]", i_start)
str_invalid_email.Substring(i_start, i_end)
Return str_invalid_email
End Function
' This function must remove (or disable) specified
' email address from mailing list
Sub RemoveEmailFromDatabase(ByVal str_invalid_email As String)
' TODO: Add your code here
End Sub