⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 使用LEADTOOLS14.5和VB
💻 FRM
📖 第 1 页 / 共 3 页
字号:
    TwainCap.CapInfo.Capability = L_CAP_FEEDERENABLED
    TwainCap.CapInfo.ConType = L_TWON_ONEVALUE
    blnFeederEnabled = chkFeederEnabled.Value
    RasVar.Type = VALUE_BOOLEAN
    RasVar.BooleanValue = blnFeederEnabled
    TwainCap.CapOneValue.OneValItemType = L_TWTY_BOOL
    TwainCap.CapOneValue.OneValCapValue = RasVar
    nRet = RasterTwain.SetCapability2(TwainCap, L_LTWAIN_CAPABILITY_SET)
    If nRet = 0 Then
        '''Debug.Print "CAP_FEEDERENABLED capability is enabled"
    Else
        '''Msgbox "An error has occurred setting the feeder."
    End If
    
    
    
    'Set X/Y Image Resolution
    RasterTwain.XResolution = CLng(Combo3.Text) 'm_lngResolution
    RasterTwain.YResolution = CLng(Combo3.Text) 'm_lngResolution

    'Set Brightness and  Contrast
    RasterTwain.ImageBrightness = (HScroll1.Value * 10)
    RasterTwain.ImageContrast = (HScroll2.Value * 10)


    'NOTE: setProperties takes 6+ seconds to set.
    'If these properties haven't changed since last scan, don't apply "set"
    
    Dim blnMarginsChanged As Boolean
    blnMarginsChanged = False
'''        If RasterTwain.ImageFrame.LeftMargin <> txtImageLeft.Text Then blnMarginsChanged = True
'''        If RasterTwain.ImageFrame.TopMargin <> txtImageTop.Text Then blnMarginsChanged = True
'''        If RasterTwain.ImageFrame.RightMargin <> txtImageRight.Text Then blnMarginsChanged = True
'''        If RasterTwain.ImageFrame.BottomMargin <> txtImageBottom.Text Then blnMarginsChanged = True
    
        If RasterTwain.LeftMargin <> txtSelLeft.Text Then blnMarginsChanged = True
        If RasterTwain.TopMargin <> txtSelTop.Text Then blnMarginsChanged = True
        If RasterTwain.RightMargin <> txtSelRight.Text Then blnMarginsChanged = True
        If RasterTwain.BottomMargin <> txtSelBottom.Text Then blnMarginsChanged = True
    
        If blnMarginsChanged = True Then
            RasterTwain.GetProperties
            'set the Flatbed Frame specs, and also the selection specs
            'NOTE: IMAGEFRAME is basically the entire flatbed area
'''                RasterTwain.ImageFrame.LeftMargin = txtImageLeft.Text
'''                RasterTwain.ImageFrame.TopMargin = txtImageTop.Text
'''                RasterTwain.ImageFrame.RightMargin = txtImageRight.Text
'''                RasterTwain.ImageFrame.BottomMargin = txtImageBottom.Text
            'NOTE: These represent a specific 'selection' area to grab from flatbed
                RasterTwain.LeftMargin = txtSelLeft.Text
                RasterTwain.TopMargin = txtSelTop.Text
                RasterTwain.RightMargin = txtSelRight.Text
                RasterTwain.BottomMargin = txtSelBottom.Text
            RasterTwain.SetProperties
        End If
    
    RasterTwain.Acquire chkShowTwainUI.Value '(L_LTWAIN_SHOW_USER_INTERFACE)
    
    ''''Set properties to scale scanned image to the box.
    LEADRasterView1.AutoRepaint = True
    LEADRasterView1.AutoSetRects = False
    ' Set the image display size to match the LEAD control.
    LEADRasterView1.SetDstRect 0, 0, _
        LEADRasterView1.ScaleWidth, _
        LEADRasterView1.ScaleHeight
    LEADRasterView1.SetDstClipRect 0, 0, _
        LEADRasterView1.ScaleWidth, _
        LEADRasterView1.ScaleHeight
        
        
    RasterTwain.EndSession
    cmdAcquire.Enabled = False
    
End Sub



Private Sub Command1_Click()
    Unload frmMain
    Load frmMain
    frmMain.Show
End Sub

Private Sub HScroll1_Change()
    Label3.Caption = HScroll1.Value
End Sub



Private Sub HScroll2_Change()
    Label4.Caption = HScroll2.Value
End Sub



Private Sub RasterTwain_AcquireMultiEvent(ByVal nPage As Integer, ByVal bstrFileName As String, ByVal bFinishScan As Boolean)
   Dim strMsg As String

   If bFinishScan Then
      strMsg = "The page # " + CStr(nPage) + " is scanned and saved to file name " + bstrFileName
      MsgBox strMsg
   End If
    End Sub
    
    
   
Private Sub RasterTwain_AcquirePageEvent(ByVal pBitmap As Long)
    LEADRasterView1.Raster.InsertBitmapListItem -1, pBitmap
  
    'for twain duplex cap
    LEADRasterView2.Raster.Bitmap = pBitmap

End Sub



'Private Sub cmdSetCapability_Click()
'   Dim iRet As Integer
'   Dim CapVal As New LEADRasterVariant
'   Set TwainCap = New LEADTwainCapability
'
'   TwainCap.CapInfo.ConType = L_TWON_ONEVALUE
'   TwainCap.CapInfo.Capability = L_ICAP_UNITS
'   TwainCap.EnableMethodErrors = False
'
'   CapVal.Type = VALUE_USHORT
'   CapVal.LongValue = L_TWUN_INCHES
'
'   TwainCap.CapOneValue.OneValItemType = L_TWTY_UINT16
'   TwainCap.CapOneValue.OneValCapValue = CapVal
'
'   iRet = RasterTwain.SetCapability2(TwainCap, L_LTWAIN_CAPABILITY_SET)
'   If (iRet <> 0) Then
'      MsgBox "Error Setting Capability"
'   End If
'
'   Set TwainCap = Nothing
'End Sub


 
Private Sub LoadLead_Click()
    Dim RasterIO As New LEADRasterIO
    CommonDialog1.Filter = "Image Files (*.bmp, *.gif, *.jpg, *.tif)|*.bmp; *.gif; *.jpg; *.tif"
    CommonDialog1.ShowOpen
    RasterIO.Load LEADRasterView1.Raster, CommonDialog1.FileName, 0, 0, 1
End Sub



Private Sub Form_Load()
    Dim i As Integer
    Set RasterTwain = New LEADRasterTwain
    
    RasterTwain.InitSession hWnd
    RasterTwain.EnableMethodErrors = False
    
    
    Screen.MousePointer = 11 'hourglass
    
    chkShowTwainUI.Value = vbChecked
    
    cmdAcquire.Enabled = True

    Combo2.AddItem "1", 0
    Combo2.AddItem "8", 1
    Combo2.AddItem "24", 2
    Combo2.ListIndex = 0
    
    Combo3.AddItem "75", 0
    Combo3.AddItem "100", 1
    Combo3.AddItem "150", 2
    Combo3.AddItem "200", 3
    Combo3.AddItem "300", 4
    Combo3.ListIndex = 0
    
    Combo4.AddItem "Feeder", 0
    Combo4.AddItem "Feed  1 Pg", 1
    Select Case RasterTwain.MaxXferCount
        Case -1
            Combo4.ListIndex = 0
        Case 1
            Combo4.ListIndex = 1
    End Select
    
    'turn off page2 button unless duplex is checked
    cmdDuplexPage2.Enabled = False
    
    Label21.Caption = RasterTwain.PaperSize
    
    'Lead COnstants Paper Sizes for Twain
    'Twain Supported Sizes
    Combo5.AddItem "L_TWSS_NONE", 0
    Combo5.AddItem "L_TWSS_A4LETTER", 1
    Combo5.AddItem "L_TWSS_B5LETTER", 2
    Combo5.AddItem "L_TWSS_USLETTER", 3
    Combo5.AddItem "L_TWSS_USLEGAL", 4
    Combo5.AddItem "L_TWSS_A5", 5
    Combo5.AddItem "L_TWSS_B4", 6
    Combo5.AddItem "L_TWSS_B6", 7
    Combo5.AddItem "L_TWSS_USLEDGER", 8
    Combo5.AddItem "L_TWSS_USEXECUTIVE", 9
    Combo5.AddItem "L_TWSS_A3", 10
    Combo5.AddItem "L_TWSS_B3", 11
    Combo5.AddItem "L_TWSS_A6", 12
    Combo5.AddItem "L_TWSS_C4", 13
    Combo5.AddItem "L_TWSS_C5", 14
    Combo5.AddItem "L_TWSS_C6", 15
    Combo5.AddItem "L_TWSS_4A0", 16
    Combo5.AddItem "L_TWSS_2A0", 17
    Combo5.AddItem "L_TWSS_A0", 18
    Combo5.AddItem "L_TWSS_A1", 19
    Combo5.AddItem "L_TWSS_A2", 20
    Combo5.AddItem "L_TWSS_A4", 21
    Combo5.AddItem "L_TWSS_A7", 22
    Combo5.AddItem "L_TWSS_A8", 23
    Combo5.AddItem "L_TWSS_A9", 24
    Combo5.AddItem "L_TWSS_A10", 25
    Combo5.AddItem "L_TWSS_ISOB0", 26
    Combo5.AddItem "L_TWSS_ISOB1", 27
    Combo5.AddItem "L_TWSS_ISOB2", 28
    Combo5.AddItem "L_TWSS_ISOB3", 29
    Combo5.AddItem "L_TWSS_ISOB4", 30
    Combo5.AddItem "L_TWSS_ISOB5", 31
    Combo5.AddItem "L_TWSS_ISOB6", 32
    Combo5.AddItem "L_TWSS_ISOB7", 33
    Combo5.AddItem "L_TWSS_ISOB8", 34
    Combo5.AddItem "L_TWSS_ISOB9", 35
    Combo5.AddItem "L_TWSS_ISOB10", 36
    Combo5.AddItem "L_TWSS_JISB0", 37
    Combo5.AddItem "L_TWSS_JISB1", 38
    Combo5.AddItem "L_TWSS_JISB2", 39
    Combo5.AddItem "L_TWSS_JISB3", 40
    Combo5.AddItem "L_TWSS_JISB4", 41
    Combo5.AddItem "L_TWSS_JISB5", 42
    Combo5.AddItem "L_TWSS_JISB6", 43
    Combo5.AddItem "L_TWSS_JISB7", 44
    Combo5.AddItem "L_TWSS_JISB8", 45
    Combo5.AddItem "L_TWSS_JISB9", 46
    Combo5.AddItem "L_TWSS_JISB10", 47
    Combo5.AddItem "L_TWSS_C0", 48
    Combo5.AddItem "L_TWSS_C1", 49
    Combo5.AddItem "L_TWSS_C2", 50
    Combo5.AddItem "L_TWSS_C3", 51
    Combo5.AddItem "L_TWSS_C7", 52
    Combo5.AddItem "L_TWSS_C8", 53
    Combo5.AddItem "L_TWSS_C9", 54
    Combo5.AddItem "L_TWSS_C10", 55
    Combo5.AddItem "L_TWSS_USSTATEMENT", 56
    Combo5.AddItem "L_TWSS_BUSINESSCARD", 57
    Combo5.ListIndex = 0


    Combo6.AddItem "BMP", 0
    Combo6.AddItem "JPG", 1
    Combo6.AddItem "GIF", 2
    Combo6.AddItem "TIF", 3
    Combo6.ListIndex = 0




    'Set defaults for displaying the image.
    'These are all persistent properties that can be set in the properties box.
    LEADRasterView1.Appearance = RASTERVIEW_APPEARANCE_FLAT
    LEADRasterView1.BorderStyle = 1
    LEADRasterView1.BackColor = RGB(255, 255, 125)
    LEADRasterView1.PaintDither = PAINTDITHER_DIFFUSION
    LEADRasterView1.PaintPalette = PAINTPALETTE_AUTO
    LEADRasterView1.AutoRepaint = True
    LEADRasterView1.AutoSize = False
    LEADRasterView1.AutoSetRects = True
    LEADRasterView1.PaintSizeMode = PAINTSIZEMODE_FIT
  
    ' Unlock Document support.
    ' Note that this is a sample key, which will not work in your toolkit.
    RasterTwain.UnlockSupport L_SUPPORT_DOCUMENT, "TestKey"
    
    ' populare the scanner name dropdown
    ' Load the installed Twain Sources
    m_lngScannerCount = RasterTwain.SourceCount
   
    'load the scanner dropdown box with all available scanners
    For i = 0 To m_lngScannerCount - 1 Step 1
        Combo1.AddItem RasterTwain.SourceName(i)
        Combo1.ListIndex = 0
    Next i
  
    'FILL THE REFERENCE GUI WITH CURRENT SCANNERS SETTINGS
    RasterTwain.GetProperties
    
    'Debug.Print RasterTwain.ImageResolution.Unit
    Select Case RasterTwain.ImageResolution.BitsPerPixel
        Case 1
            Combo2.ListIndex = 0
        Case 8
            Combo2.ListIndex = 1
        Case 24
            Combo2.ListIndex = 2
    End Select
    
    Select Case RasterTwain.XResolution
        Case 75
            RasterTwain.XResolution = 75
            RasterTwain.YResolution = 75
        Case 100
            RasterTwain.XResolution = 100
            RasterTwain.YResolution = 100
        Case 150
            RasterTwain.XResolution = 150
            RasterTwain.YResolution = 150
        Case 200
            RasterTwain.XResolution = 200
            RasterTwain.YResolution = 200
        Case 300
            RasterTwain.XResolution = 300
            RasterTwain.YResolution = 300
    End Select
    
    txtTwainMaxPages.Text = RasterTwain.MaxPagesNumber
    txtXferPages.Text = RasterTwain.MaxXferCount
    txtTwainRotation.Text = RasterTwain.ImageResolution.RotationAngle
    
    'let's avoid divide by zero errors
    If RasterTwain.ImageBrightness = 0 Then RasterTwain.ImageBrightness = 1
    If RasterTwain.ImageContrast = 0 Then RasterTwain.ImageContrast = 1
    'get the settings
    HScroll1.Value = (RasterTwain.ImageBrightness / 10)
    Label3.Caption = (RasterTwain.ImageBrightness / 10)
    HScroll2.Value = (RasterTwain.ImageContrast / 10)
    Label4.Caption = (RasterTwain.ImageContrast / 10)
    
   
   'NOTE!!! The IMAGEFRAME is the glass of the scanner, the ENTIRE AVAILABLE AREA
   'so top would be 0, left would be 0, right might be 8.5 and bottom might be 11.5
   'the RasterTwain.LeftMargin (etc.) represents the SELECTION box
   
    txtImageLeft.Text = RasterTwain.ImageFrame.LeftMargin
    txtImageTop.Text = RasterTwain.ImageFrame.TopMargin
    txtImageRight.Text = RasterTwain.ImageFrame.RightMargin
    txtImageBottom.Text = RasterTwain.ImageFrame.BottomMargin
    
    txtSelLeft.Text = RasterTwain.LeftMargin
    txtSelTop.Text = RasterTwain.TopMargin
    txtSelRight.Text = RasterTwain.RightMargin
    txtSelBottom.Text = RasterTwain.BottomMargin
    
    'interpreted now
    txtWidth.Text = RasterTwain.ImageFrame.RightMargin - RasterTwain.ImageFrame.LeftMargin
    txtHeight.Text = RasterTwain.ImageFrame.BottomMargin - RasterTwain.ImageFrame.TopMargin
    

'FEEDER CAPABILITY
    Dim bEnable As Boolean
    'Dim nRet As Integer
    'RasterTwain.SelectSource
    TwainCap.CapInfo.Capability = L_CAP_AUTOFEED
    TwainCap.CapInfo.ConType = L_TWON_ONEVALUE
    bEnable = True
    Dim RasVar As New LEADRasterVariant
    RasVar.Type = VALUE_BOOLEAN
    RasVar.BooleanValue = bEnable
    TwainCap.CapOneValue.OneValItemType = L_TWTY_BOOL
    TwainCap.CapOneValue.OneValCapValue = RasVar
    nRet = RasterTwain.SetCapability2(TwainCap, L_LTWAIN_CAPABILITY_SET)
    chkFeederEnabled.Enabled = True
    If nRet = 0 Then
        chkFeederEnabled = vbChecked
        'MsgBox "AutoFeed capability is enabled"
    Else
        chkFeederEnabled = vbUnchecked
        'MsgBox "Can't enable AutoFeed capability"
    End If
   ' try to acquire pages using AutoFeed capability
   'RasterTwain.Acquire L_LTWAIN_SHOW_USER_INTERFACE Or L_LTWAIN_MODAL_USER_INTERFACE

'DUPLEX SUPPORT
    Dim bEnableDuplex As Boolean
    Dim nDuplexMode As Integer
    '   Dim nMaxXfer As Integer
    chkDuplexEnabled.Value = RasterTwain.EnableDuplex
    nDuplexMode = RasterTwain.DuplexMode
    If chkDuplexEnabled.Value = vbUnchecked Then
      RasterTwain.EnableDuplex = True
    End If


    LEADRasterView2.Height = LEADRasterView1.Height
    LEADRasterView2.Left = LEADRasterView1.Left
    LEADRasterView2.Top = LEADRasterView1.Top
    LEADRasterView2.Width = LEADRasterView1.Width
    LEADRasterView2.Visible = False
    
    
    Screen.MousePointer = 0 'default
    
End Sub


Private Sub Form_Unload(Cancel As Integer)
    RasterTwain.EndSession
    Set RasterTwain = Nothing
    Set TwainCap = Nothing
End Sub



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -