Что нового

[Автоматизация] Работа со сканером через twain

Vlasssov

Осваивающий
Сообщения
430
Репутация
25
Если кто думал над данной проблемой, то может поделитесь, где что взять.
В Интернете нарыл, что twain - фактически работает через api, на официальном форуме , что-т не особо информации, только ссылка на сайт с описанием команд twain

http://www.autoitscript.com/forum/topic/27503-want-to-use-twain-to-scan-a-image-from-scanner/page__p__750754__hl__twain__fromsearch__1#entry750754

Требуется минимум - отсканировать с заданным разрешением и сохранить в заданном формате. Фишка в том, что надо это для пакетного сканирования, кода сканируется много файлов сразу. Из программ это делает только finereader, однако там очень трудно установить опции.
 

XpycT

Скриптер
Сообщения
380
Репутация
132
Vlasssov
У меня тоже была такая необходимость.

Вот что мне удалось сделать
Код:
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc_MySQL")

; OnAcquire ( )

Dim $sScanPDF = @ScriptDir & "\Scan.pdf"
If FileExists($sScanPDF) Then FileDelete($sScanPDF)

$oTWAIN = ObjCreate("TwainControlXTrial.Twain")
If Not IsObj($oTWAIN) Then _DebugPrint("Not IsObj($oTWAIN)")

Global $oTWAINEvent = ObjEvent($oTWAIN, "_TWAIN_", "ITwainEvents")

$oTWAIN.CurrentDevice = $oTWAIN.DefaultDevice
$iCurrentDevice = $oTWAIN.CurrentDevice
$sDeviceName = $oTWAIN.DeviceName($iCurrentDevice)
_DebugPrint("$iCurrentDevice = " & $iCurrentDevice & " | " & $sDeviceName)

; $oTWAIN.PixelType = 2
; $oTWAIN.Resolution = 300

$oTWAIN.UseInterface = True
; $oTWAIN.ShowProgress = True

; $oTWAIN.MultiImage = True
; $oTWAIN.KeepImages = True

For $p = 1 To 1
	$oTWAIN.Acquire()

	_DebugPrint("Units      = " & $oTWAIN.Units)
	_DebugPrint("Contrast   = " & $oTWAIN.Contrast)
	_DebugPrint("Threshold  = " & $oTWAIN.Threshold)
	_DebugPrint("PixelType  = " & $oTWAIN.PixelType)
	_DebugPrint("Resolution = " & $oTWAIN.Resolution)
	_DebugPrint("Brightness = " & $oTWAIN.Brightness)

	$oTWAIN.AddToPDF($p)

; 	Sleep(3000)
Next

$oTWAIN.WritePDF($sScanPDF)

$oTWAIN.Clear
$oTWAIN.Unload
$oTWAIN.UnloadDevice

Func _TWAIN_OnAcquire()

EndFunc

Func _TWAIN_OnFinish()

EndFunc

Func _DebugPrint($_sDebugMsg, $_iScriptLine = @ScriptLineNumber)
	ConsoleWrite(StringFormat("%0" & StringLen(@ScriptLineNumber + 1) & "d | %s", $_iScriptLine, $_sDebugMsg) & @CR)
EndFunc   ;==>_DebugPrint


Для работы необходимо скачать и установить TwainControlX.

Правда только trial version, но на сайте написано "Fully functional"
 
Автор
Vlasssov

Vlasssov

Осваивающий
Сообщения
430
Репутация
25
Была и такая мысль.. Но вот тут есть решение на Visual Basic
http://www.catenary.com/howto/twain_vb.html
С использованием
Victor Image Processing Library
http://www.catenary.com/welcome.html
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
361
Vlasssov
Еще на эту тему, может, пригодится:
http://forum.script-coding.com/viewtopic.php?id=4387
 
Верх