- Start Visual Studio .NET.
- Choose File->New->Project… from the menu.
- In the New Project dialog box, choose either "Visual C# Projects" or "Visual Basic Projects" in the Projects Type List, and choose "Windows Application " in the Templates List.
- Type the project name as " Acquiring an Image" in the Project Name field, and then choose OK. If desired, type a new location for your project or select a directory using the Browse button, and then choose OK .
- In the "Solution Explorer" window, right-click on the "References" folder, and select "Add Reference…" from the context menu. In the "Add Reference" dialog box, select the ".NET" tab and browse to Leadtools For .NET "<LEADTOOLS_INSTALLDIR>\Bin\DotNet\Win32 " folder and select the following DLLs:
- Leadtools.dll
- Leadtools.Twain.dll
- Leadtools.Codecs.dll
- Leadtools.WinForms.dll
- Make sure Form1 is in design view. Go to the toolbox (View->Toolbox) and Drag and drop an instance of RasterImageViewer to the form. If you do not have RasterImageViewer in your toolbox, select Tools->Choose Toolbox Items from the menu. Click Browse and then select Leadtools.WinForms.DLL from "<LEADTOOLS_INSTALLDIR>\Bin\DotNet\Win32" and then click Open and then click OK.
- Go to the toolbox (View->Toolbox) and Drag and drop a 3 instance of RadioButton control to the top of the form and set the following properties for them:
Text Name Checked Native radioNative False Memory radioMemory False File radioFile False - Go to the toolbox (View->Toolbox) and Drag and drop a 4 instance of Button control to the top of the form and set the following properties for them:
Text Name Acquire buttonAcquire Select Source buttonSelectSource Save Template File buttonSaveTemplateFile Load Template File buttonLoadTemplateFile - Switch to Form1 code view (right-click Form1 in the solution explorer then select View Code ) and add the following lines at the beginning of the file:
[Visual Basic]
Imports Leadtools Imports Leadtools.Twain Imports Leadtools.Codecs Imports Leadtools.WinForms
[C#]using Leadtools; using Leadtools.Twain; using Leadtools.Codecs; using Leadtools.WinForms;
- Declare the following private variable:
[Visual Basic]
Private WithEvents twnSession As TwainSession
[C#]private TwainSession twnSession;
- Add an event handler to the Form1 Load event and code it as follows:
[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try twnSession = new TwainSession twnSession.Startup(Me, "manufacturer", "productFamily", "version", "application", TwainStartupFlags.None) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void Form1_Load(object sender, System.EventArgs e) { try { twnSession = new TwainSession(); twnSession.Startup(this, "manufacturer", "productFamily", "version", "application", TwainStartupFlags.None); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the Form1 Closing event and code it as follows:
[Visual Basic]
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try twnSession.Shutdown() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void Form1_FormClosing(object sender, FormClosingEventArgs e) { try { twnSession.Shutdown(); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the twnSession AcquirePage event and code it as follows:
[Visual Basic]
Private Sub twnSession_AcquirePage(ByVal sender As Object, ByVal e As TwainAcquirePageEventArgs) Handles twnSession.AcquirePage RasterImageViewer1.Image = e.Image End Sub
[C#]private void twnSession_AcquirePage(object sender, TwainAcquirePageEventArgs e) { rasterImageViewer1.Image = e.Image; }
- Add an event handler to the buttonAcquire Click event and code it as follows:
[Visual Basic]
Private Sub buttonAcquire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonAcquire.Click Try twnSession.Acquire(TwainUserInterfaceFlags.Show) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void buttonAcquire_Click(object sender, System.EventArgs e) { try { twnSession.AcquirePage += new EventHandler<TwainAcquirePageEventArgs>(twnSession_AcquirePage); twnSession.Acquire(TwainUserInterfaceFlags.Show); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the buttonSelectSource Click event and code it as follows:
[Visual Basic]
Private Sub buttonSelectSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSelectSource.Click Try twnSession.SelectSource(String.Empty) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void buttonSelectSource_Click(object sender, System.EventArgs e) { try { twnSession.SelectSource(string.Empty); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the buttonSaveTemplateFile Click event and code it as follows:
[Visual Basic]
Private Sub buttonSaveTemplateFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSaveTemplateFile.Click Try twnSession.SaveTemplateFile("c:\test.ltt") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void buttonSaveTemplateFile_Click(object sender, System.EventArgs e) { try { twnSession.SaveTemplateFile(@"c:\test.ltt"); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the buttonLoadTemplateFile Click event and code it as follows:
[Visual Basic]
Private Sub buttonLoadTemplateFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonLoadTemplateFile.Click Try twnSession.LoadTemplateFile("c:\test.ltt") Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void buttonLoadTemplateFile_Click(object sender, System.EventArgs e) { try { twnSession.LoadTemplateFile(@"c:\test.ltt"); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the radioNative CheckedChanged event and code it as follows:
[Visual Basic]
Private Sub radioNative_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles radioNative.CheckedChanged Try Dim capability As New TwainCapability capability.Information.ContainerType = TwainContainerType.OneValue capability.Information.Type = TwainCapabilityType.ImageTransferMechanism capability.OneValueCapability.ItemType = TwainItemType.Uint16 capability.OneValueCapability.Value = CType(TwainTransferMechanism.Native, Object) twnSession.SetCapability(capability, TwainSetCapabilityMode.Set) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void radioNative_CheckedChanged(object sender, System.EventArgs e) { try { TwainCapability capability = new TwainCapability(); capability.Information.ContainerType = TwainContainerType.OneValue; capability.Information.Type = TwainCapabilityType.ImageTransferMechanism; capability.OneValueCapability.ItemType = TwainItemType.Uint16; capability.OneValueCapability.Value = TwainTransferMechanism.Native; twnSession.SetCapability(capability, TwainSetCapabilityMode.Set); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the radioMemory CheckedChanged event and code it as follows:
[Visual Basic]
Private Sub radioMemory_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles radioMemory.CheckedChanged Try Dim capability As New TwainCapability capability.Information.ContainerType = TwainContainerType.OneValue capability.Information.Type = TwainCapabilityType.ImageTransferMechanism capability.OneValueCapability.ItemType = TwainItemType.Uint16 capability.OneValueCapability.Value = CType(TwainTransferMechanism.Memory, Object) twnSession.SetCapability(capability, TwainSetCapabilityMode.Set) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void radioMemory_CheckedChanged(object sender, System.EventArgs e) { try { TwainCapability capability = new TwainCapability(); capability.Information.ContainerType = TwainContainerType.OneValue; capability.Information.Type = TwainCapabilityType.ImageTransferMechanism; capability.OneValueCapability.ItemType = TwainItemType.Uint16; capability.OneValueCapability.Value = TwainTransferMechanism.Memory; twnSession.SetCapability(capability, TwainSetCapabilityMode.Set); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Add an event handler to the radioFile CheckedChanged event and code it as follows:
[Visual Basic]
Private Sub radioFile_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles radioFile.CheckedChanged Try Dim capability As New TwainCapability capability.Information.ContainerType = TwainContainerType.OneValue capability.Information.Type = TwainCapabilityType.ImageTransferMechanism capability.OneValueCapability.ItemType = TwainItemType.Uint16 capability.OneValueCapability.Value = CType(TwainTransferMechanism.File, Object) twnSession.SetCapability(capability, TwainSetCapabilityMode.Set) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
[C#]private void radioFile_CheckedChanged(object sender, System.EventArgs e) { try { TwainCapability capability = new TwainCapability(); capability.Information.ContainerType = TwainContainerType.OneValue; capability.Information.Type = TwainCapabilityType.ImageTransferMechanism; capability.OneValueCapability.ItemType = TwainItemType.Uint16; capability.OneValueCapability.Value = TwainTransferMechanism.File; twnSession.SetCapability(capability, TwainSetCapabilityMode.Set); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }
- Build, and Run the program to test it.