Numérisation de plusieurs pages avec l'ADF scanner à l'aide de VBA
Je suis en train d'écrire une application Microsoft Access et je veux permettre à l'utilisateur de numériser plusieurs pages dans un seul fichier PDF en format. La conversion en PDF fonctionne très bien une fois que j'ai toutes les pages numérisées. Voici mon 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
Bien sûr, il est important de dire que mon scanner est Avision AV121 avec un chargeur automatique de documents.
Mon problème est que Set img = dev.Items(1).Transfer(WIA_FORMAT_JPEG)
numérise TOUTES les pages à la fois (et pas seulement une seule page), mais je ne vois que le premier dans le fichier image. Parce que toutes les pages sont numérisées à la fois, je ne peux pas le faire dans une boucle - une erreur est signalée dans la deuxième itération (en disant que le chargeur est vide, c'est vraiment) et je n'ai encore que la première page numérisée.
Je voudrais dire que cela semble être un problème commun. J'ai lu beaucoup de discussions sur ce problème, mais je n'ai pas trouver quelque chose qui a répondu à ma question.
J'espère trouver de l'aide ici, je suis vraiment frustré.
Merci beaucoup
OriginalL'auteur Yotam | 2013-06-09
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème moi-même.
Je ne me souviens pas où j'ai trouvé que c'est probablement une limitation de l'extension WIA, un bug je pense. Peut-être que dans certaines circonstances.
Ma solution a été d'utiliser une 3ème partie de numérisation de contrôle.
OriginalL'auteur E Mett
Pour ceux qui sont encore à travailler sur le problème, j'ai modifié ce code à partir de JIM code pour travailler avec un scanner avec un chargeur automatique de documents. Il numérise les documents en continu unlimit pages et la stocke sous forme d'un fichier jpeg temporairement. Il génère ensuite un rapport au format pdf. C'est la seule façon que je peux comprendre de la numérisation de plusieurs documents à l'aide d'un scanner ADF.
OriginalL'auteur chalermpon
J'ai modifié ce code fonctionne avec un scanner avec un chargeur automatique de documents. Il numérise les documents en continu jusqu'à 10 pages et la stocke sous forme d'un fichier jpeg temporairement. Il génère ensuite un rapport au format pdf. C'est la seule façon que je peux comprendre de la numérisation de plusieurs documents à l'aide d'une AAD scanner à l'aide de WIA sans l'aide d'un 3ème partie app.
Items(1).Transfer
la première fois, toutes les pages sont numérisées par le chargeur. La prochaine fois que l'Transfer
méthode est appelée, il recherche les pages dans le chargeur et ne trouve pas tout, à quel point il renvoie une erreur. (Il n'y a aucun moyen d'accéder à d'autres images, à travers leScanner
objet).OriginalL'auteur Jim
J'ai un problème similaire. Écrit dans MS Access. Pour numériser à partir du scanner Broter 7065, avec l'ADF, le tout dans un seul fichier PDF. Et plus le temps d'écrire votre propre code. Beaucoup cherché, mais pas trouvé ce dont j'avais besoin.
Le problème a été résolu avec l'aide du programme "quick scan en ligne de Commande de numérisation TWAIN"http://www.burrotech.com/quickscan/
OriginalL'auteur Russian Ivan
Pour ceux qui sont encore à travailler sur le problème, j'ai trouvé les solutions suivantes:
Selon formatID on utilise pour le Scanner.Les éléments(1).Transfert("formatID"), mon scanner soit arrêté après la numérisation 1 papier ou la poursuite de la numérisation (il ne fonctionne qu'avec BMP pour moi, et je suis en utilisant un HP Officejet J4680).
J'ai ensuite utilisé comme variable dire ADFstatus qui lit si il y a encore un papier dans le chargeur et l'ont utilisée pour créer une boucle while.(wiaScanner.Les propriétés.Élément("3087")). J'ai ensuite enregistré chaque image numérisée séparément, et il provoque l'ADF scanner de s'arrêter après chaque scan au lieu de numériser tous les documents à la fois.
par exemple:
Espère que cette aide
OriginalL'auteur
Une autre alternative est d'acquérir les images que wiaFormatTIFF qui se traduira dans un multi-page tiff. Vous pouvez ensuite parcourir chaque page dans le format tiff et enregistrer chaque si vous avez besoin d'images séparées.
OriginalL'auteur Ian Moore
C'est un pas de lecteur pris en charge.
- Je résoudre ce de l'installation d'origine Twain Lecteur pour Brother DCP-8157
OriginalL'auteur user2813440