Scannen mehrerer Seiten mit dem ADF-scanner mit VBA
Schreibe ich eine Microsoft Access-Anwendung, und ich möchte dem Benutzer ermöglichen, scan mehrere Seiten zu einem einzigen PDF-format. Die PDF-Konvertierung funktioniert, wenn ich alle Seiten gescannt. Hier ist mein code:
Option Compare Database
Option Explicit
Const WIA_FORMAT_JPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
Public Function MyScan()
Dim ComDialog As WIA.CommonDialog
Dim DevMgr As WIA.DeviceManager
Dim DevInfo As WIA.DeviceInfo
Dim dev As WIA.Device
Dim img As WIA.ImageFile
Dim i As Integer
Dim wiaScanner As WIA.Device
Set ComDialog = New WIA.CommonDialog
Set wiaScanner = ComDialog.ShowSelectDevice(WiaDeviceType.UnspecifiedDeviceType, False, True)
Set DevMgr = New WIA.DeviceManager
For i = 1 To DevMgr.DeviceInfos().Count
If DevMgr.DeviceInfos(i).DeviceID = wiaScanner.DeviceID Then
Set DevInfo = DevMgr.DeviceInfos(i)
End If
Next i
Set dev = DevInfo.Connect
Set img = dev.Items(1).Transfer(WIA_FORMAT_JPEG)
img.SaveFile "C:\img.jpg"
Set img = Nothing
Set dev = Nothing
Set DevInfo = Nothing
Set DevMgr = Nothing
Set ComDialog = Nothing
End Function
Natürlich ist es wichtig zu sagen, dass mein scanner ist Avision AV121 mit einem automatischen Dokumenteneinzug ausgestattet.
Mein problem ist, dass Set img = dev.Items(1).Transfer(WIA_FORMAT_JPEG)
durchsucht ALLE Seiten auf einmal (und nicht nur von einer einzigen Seite), aber ich sehe nur die erste in der Bild-Datei. Weil alle Seiten eingescannt sind auf einmal, ich kann es nicht in einer Schleife - ein Fehler ausgelöst, in der zweiten iteration (sagen, dass die Zuführung leer ist, wie es wirklich ist) und ich habe nur noch die erste Seite gescannt.
Ich würde sagen, dass dies scheint ein häufiges problem zu sein. Ich habe gelesen, eine Menge threads zu diesem problem, aber habe nichts gefunden das meine Frage beantwortet.
Ich hoffe hier Hilfe zu finden, ich bin wirklich frustriert.
Vielen Dank
InformationsquelleAutor Yotam | 2013-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte dieses problem selbst.
Ich kann mich nicht erinnern, wo ich fand, dass dies ist wahrscheinlich eine Einschränkung des WIA, ein bug denke ich. Vielleicht nur in einigen Fällen.
Meine Lösung war die Verwendung eines 3rd-party-scan-Steuerung.
InformationsquelleAutor E Mett
Für alle arbeiten immer noch an dem problem, habe ich geändert, dieser code von JIM ' s code funktioniert mit einem scanner mit ADF. Es scannt die Dokumente, die kontinuierlich unendlich Seiten und speichert Sie als jpeg-Datei vorübergehend. Es dann gibt einen Bericht in eine pdf-Datei. Dies ist der einzige Weg, wie ich herausfinden kann Scannen mehrerer Dokumente mit einem ADF-scanner.
InformationsquelleAutor chalermpon
Ich geändert, dieser code funktioniert mit einem scanner mit ADF. Es scannt die Dokumente, die kontinuierlich bis zu 10 Seiten und speichert Sie als jpeg-Datei vorübergehend. Es dann gibt einen Bericht in eine pdf-Datei. Dies ist der einzige Weg, wie ich herausfinden kann Scannen mehrerer Dokumente mit einem ADF-scanner mit WIA-Unterstützung, ohne mit einem 3rd-party-app.
Items(1).Transfer
ersten mal alle Seiten eingescannt sind durch den feeder. Das nächste mal dieTransfer
- Methode aufgerufen wird, sieht es für Seiten im feeder-und nicht alle finden, an welcher Stelle es wirft einen Fehler. (Es gibt auch keine Möglichkeit, den Zugriff auf die anderen Bilder durch dieScanner
Objekt.)InformationsquelleAutor Jim
Ich habe ein ähnliches problem. Schreiben Sie in MS Access. Scannen aus dem scanner Broter 7065, mit ADF, in einer einzigen PDF-Datei. Und keine Zeit zu schreiben Ihren eigenen code. Viel gesucht, aber nicht gefunden, was ich brauchte.
Gelöst wurde das problem mit Hilfe des Programms "quick scan Befehlszeile TWAIN-Scannen"http://www.burrotech.com/quickscan/
InformationsquelleAutor Russian Ivan
Für alle, die noch an dem problem arbeiten, fand ich folgende Lösungen:
Je nachdem, welche formatID verwendet man für den Scanner.Artikel(1).Transfer("formatID"), mein scanner wird entweder gestoppt, nachdem ein scan 1 Papier oder fortgesetzt Scannen (es funktioniert nur mit BMP für mich, und ich bin mit einem HP Officejet J4680).
Ich dann als variable sagen ADFstatus liest, ob noch Papier in die Zuführung ein und verwendet diese zum erstellen einer while-Schleife.(wiaScanner.Eigenschaften.Item("3087")). Ich habe dann gespeichert, jedes gescannte Bild einzeln, und es bewirkt, dass die ADF scanner stop nach jedem scan statt Scannen alle Papiere auf einmal.
Beispiel:
Hoffe, das hilft
InformationsquelleAutor
Andere alternative ist der Erwerb der Bilder als wiaFormatTIFF die in einer multi-page tiff. Sie können dann in einer Schleife durch jede Seite in den tiff-und jeweils speichern, wenn Sie benötigen separate Bilder.
InformationsquelleAutor Ian Moore
Es ist ein nicht unterstütztes Laufwerk.
Ich löse diese Installation original Twain-Laufwerk für Brother DCP-8157
InformationsquelleAutor user2813440