SCANNER UN DOCUMENT ET L'ENREGISTRER EN JPEG AVEC TWAIN

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 1 mars 2006 à 18:14
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014 - 17 nov. 2013 à 22:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36326-scanner-un-document-et-l-enregistrer-en-jpeg-avec-twain

carlutchi Messages postés 2 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 2 novembre 2012
2 nov. 2012 à 10:24
Bonjour,

il y a un moyen de scanner une page en format .pdf au lieu de .jpg ?

Merci
collargol123 Messages postés 86 Date d'inscription jeudi 24 octobre 2013 Statut Membre Dernière intervention 2 avril 2014 > carlutchi Messages postés 2 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 2 novembre 2012
17 nov. 2013 à 22:28
Bonsoir,

Dans le code, j'ai un probleme sur : frm.Handle.ToInt32
frm n'est pas déclarée.
A quoi correspond -elle ?

De même avec pbImage.Image
pb = picture box ?
Qui doit probablement permettre de visualiser le document scanné

Enfin, ou doit -on mettre ezw32 ?

Merci de vos réponses
cs_breizhou29 Messages postés 2 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 novembre 2015
14 janv. 2012 à 13:45
Bonjour,

Pil poil ce que je cherchais !
J'ai juste apporté quelques mofif pour le faire fonctionner sous VB express 2008.
Le scan se passe bien mais ça plante à l'enregistrement

Dans le code, il ne me reconnait pas:
pbImage.Image = System.Windows.Forms.Clipboard.GetDataObject.GetData(System.Windows.Forms.DataFormats.Bitmap)

Quelqu'un a une solution ?
Merci d'avance
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
8 juil. 2011 à 12:44
bonjour,
tu as simplement à copier le bloc DECLARE en tête de classe
et le reste dans une fonction, lorsque tu l'appelleras, le scan se lancera.

Et si c'est pour du C#, pense à traduire le code, ici, c'est du VB
netanri Messages postés 1 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 16 juin 2011
16 juin 2011 à 10:31
bonjour!

je suis encore novice en c#, pouvez vous me dire comment utiliser ce code???

merci
nicolasferreira Messages postés 6 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 9 mars 2009
9 mars 2009 à 13:02
cette source est vraiment géniale !
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
15 mai 2008 à 20:03
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
15 mai 2008 à 18:34
ok merci
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
15 mai 2008 à 15:35
Met tout dans le même zip téléchargeable depuis ta source (si soldier8514 est d'accord), ce sera plus simple pour ceux qui voudront ta source
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
15 mai 2008 à 10:20
si je poste mon source, à ton avis est ce que je dois poster l'ocx de Soldier8514 et ta dll dans mon zip ou bien mettre un lien vers vos source ?
dans le premier cas mon zip est > 1 MegaByte
dans l'autre cas
faut télécharger 3 sources pour pouvoir utiliser mon prog
c'est un choix difficile à faire
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
15 mai 2008 à 09:53
je pense que tu pourrais la poster sous ta propre source en spécifiant grâce à qui tu l'as réalisé. Ton code n'a pas le même but que le miens.
En effet, ma source permet aux gens de comprendre le fonctionnement général des fonctions de scan de manière simplifiée (le moins d'enrobage possible pour ne pas se perdre) alors que le tiens imbrique plusieurs fonctionnalités interressantes dont d'autres pourraient avoir besoin.
Si tu le fais, hésite pas à mettre le lien vers ta source ici ainsi que le miens sur la tienne.
;p
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
14 mai 2008 à 15:13
j'ai trouvé
ca y est j'ai fini mon prog le photocopieur
je sais pas si je vais le poster ici car c'est surtout grace au travaildes autres que j'ai réussis
j'ai fait que utiliser ton code

celui de Soldier8514

http://www.vbfrance.com/codes/3NITY-IMAGE-STUDIO-ACTIVEX-SDK-COMPOSANT-DEDIE-IMAGERIE_41922.aspx

et celui de labout

http://www.vbfrance.com/code.aspx?ID=18017
pour l'impression
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
14 mai 2008 à 14:10
il faut que tu utilise les objets print et printers.
Je pense que tu trouvera facilement des sources à ce sujet.
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
14 mai 2008 à 11:00
de rien ce fut un plaisir,
m'en vais chercher du code pour pouvoir imprimer la page a4 obtenue car je vois pas du tout comment faire
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
14 mai 2008 à 09:08
merci pour ta contribution, j'étudierais ce que tu nous a fourni et à l'occasion, je l'ajouterais à ma source pour que les suivants ne se heurtent pas au même problème.
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
13 mai 2008 à 18:04
j'ai trouvé :
http://www.vbfrance.com/codes/3NITY-IMAGE-STUDIO-ACTIVEX-SDK-COMPOSANT-DEDIE-IMAGERIE_41922.aspx
avec cet OCX ça fonctionne, l'image est chargée dans l'ocx et sauvée sur le Disque Dur au format que je voulais
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
13 mai 2008 à 11:05
l'image se trouve bien dans le presse-papier, mspaint, wordpad et autres la récupère sans problème, c'est pas un problème de format le jpeg supporte le 300 DPI
la picturebox ne l'affiche carrement pas et c'est là le problème, j'ai éssayé de charger une image de la mème taille mème résolution à partir d'un fichier et la ça fonctionne alors ça me laisse la drole d'impression que c'est le picturebox qui ne gère pas tres bien le clipboard
peut etre que si on prends l'image du clipboard et qu'on la met dans un objet Bitmap ou je sais pas
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
13 mai 2008 à 09:57
Bonjour, pour ton information et si j'ai bonne mémoire (ça fait deux ans que j'ai posté ce code), l'image est toujours mise dans le presse papier, c'est pour ça qu'on la met dans un pictureBox.
Ensuite, si ça ne l'enregistre pas, c'est probablement car la pictureBox ou l'enregistrement en JPG ne supporte pas cette résolution. Essaie de l'enregistrer en BitMap.
Tiens nous au courant.
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
12 mai 2008 à 17:29
bizarre :
TWAIN_SetCurrentResolution(150)
fonctionne parfaitement mais :
TWAIN_SetCurrentResolution(300)
ça met l'image dans le presse-papier mais impossible de la sauver avec ton code et comme je n'y connais rien je suis dans un noeud car quandje veux imprimer le scan en 150 DPI ça fait un quart de page !
tu n'aurais pas une idée s'il te plait
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
12 mai 2008 à 14:01
magnifique

cela fait un bon moment que je voulais faire un prog genre photocopieuse avec ta source pour le scan j'ai meme plus besoin de me casser la tete ça fonctionne tout seul
me reste plus que le code pour imprimer l'image

merci beaucoup je me permetrai de te créditer dans mon prog si cela ne te dérange pas !

la ligne de code

s_cheminsauv = Left(s_cheminsauv, s_cheminsauv.Length - 4)

provoquais une erreur chez moi je l'ai enlevée maintenant c'est parfait
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
10 mars 2008 à 17:18
sur ce point-là, je ne sais pas du tout. Fais des recherches sur d'autres forum et supports. Mais ça devrait bien s'intégrer.
Bonne recherche.
Jomba
cs_soumma84 Messages postés 2 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 10 mars 2008
10 mars 2008 à 12:14
merci pour m'avoir répondu
j'ai compris les étapes mais le problème que l'enregistrement de document scanné doit se faire en ligne:on doit choisir l'emplacement dans un portail sharepoint
merci
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
10 mars 2008 à 12:09
bien, pour commencer, tu dois créer un projet ;p
Tu met la dll que je propose en téléchargement dans le dossier du projet, pas besoin de l'enregistrer ni d'y faire référence dans le projet.
Ensuite, dans la fenêtre d'où tu veux faire un scan, tu place les appels d'API (Declare function...) (voir l'aide pour trouver où les placer)
Enfin, tu met le reste du code sur le clic d'un bouton (par exemple) et tu adaptes le code à tes besoins.

C'est tout, bon courage.
Jomba
cs_soumma84 Messages postés 2 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 10 mars 2008
7 mars 2008 à 15:46
bonjour, je dois développer une application de numérisation avec C#, le problème que je sais pas d'ou commencer
je sais que je dois utiliser TWAIN mais comment? je sais pas.
je travaille sur windows server 2003 avec VS2008.
vous pouvez me guidez.
merci
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
28 févr. 2008 à 08:51
Bonjour, je n'ai pas d'idée pour ton problème : je n'ai jamais rencontré cette erreur pour ce code.
Mais, quelques questions :
1. tu utilise .net2?
2. AS-tu la bonne version de EZTW32.dll. Je sais que mon code marche pour .net et la version que je fournis en téléchargement. Mais si tu utilise .net2, il faut peut-être que tu prennes une version ultérieure de Twain.

Fais des tests, et si tu trouve la cause ou la solution de l'erreur, tiens nous au courant.

Bonne journée et bon courage
drof Messages postés 28 Date d'inscription mardi 7 novembre 2006 Statut Membre Dernière intervention 30 août 2011
26 févr. 2008 à 14:42
Cette source est vraiment superbe!!! exactement ce dont j'avais besoin...

Par contre j'ai 3 ou 4 fois ce msg ("Un appel à la fonction PInvoke 'MonAppli!Mere.toto::TWAIN_SetCurrentUnits' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.") qui s'affiche ....

aurais-tu une idée du problème???

en tout cas merci beaucoup
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
8 févr. 2008 à 11:58
Bonjour, frm correspond à la fenêtre dans laquelle se trouve ce code.
Cette ligne permet de spécifier la fenêtre qui manipule la gestion de source.
drof Messages postés 28 Date d'inscription mardi 7 novembre 2006 Statut Membre Dernière intervention 30 août 2011
6 févr. 2008 à 11:17
Bonjour,

je viens de trouver ton source après de nombreuse recherche...

mais je ne comprends pas très bien à quoi correspont frm dans la ligne :
"TWAIN_OpenSourceManager(frm.Handle.ToInt32)"

merci d'avance
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
22 janv. 2007 à 15:41
Salut, désolé encore pour le temps de réponse, je viens pas souvent voir mes questions.
1) pour insérer la dll, 2 possibilité :
- Soit tu la met dans system32 et tu l'enregistre (dans ce cas, tu dois l'installer sur chaque poste où tu executeras ton appli)
- Soit tu la met dans le même dossier que ton application (le .exe)
2) pas de question...
3) g_rcdCandidat.Seek(l_iNoCandidat) est une ligne de code qui provient de mon application d'origine, c'était une recherche dans un recordset.
Je m'étais jamais aperçu que j'avais laissé cette ligne. lol...
Je reste à ta dispo si tu as d'autres questions. (plus rapidement cette fois...)
VraiQuincy Messages postés 1 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 18 janvier 2007
18 janv. 2007 à 00:41
Bonjour, j'aimerais essayer ton programme mais j'ai besoin de plus d'information. J'ai pas d'expérience avec les DLL. J'ai quelques intérrogations:
1) Comment insérer adéquatement la DLL dans le programme ?
3) qu'est ce que: g_rcdCandidat.Seek(l_iNoCandidat)

Merci.
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
11 déc. 2006 à 12:14
bonjour, désolé pour le temps que j'ai mis à répondre, j'étais absent depuis trois semaines.
Pour VBA, c'est normal, les API ne sont pas toutes présentes selon le framework, j'ai eu le même problème lorsque j'ai essayé de le passer en vb6 (on a réussi mais il a fallut enlever certaines fonctions, notamment le jpeg). Il faut bidouiller mais les fonctions les plus importantes sont présentes normalement (je n'ai pas testé sur vba donc je ne peux rien assurer).

Pour la page Web, je ne sais pas du tout si tu peux l'intégrer, il faut le tester. Si ça marche, préviens nous.
merkhaled Messages postés 26 Date d'inscription mercredi 8 décembre 2004 Statut Membre Dernière intervention 8 octobre 2007
1 déc. 2006 à 14:13
bonjour,
est-il possible d'intégrer ton conde dans une page web ?
de piloter le scanner a partir du site, genre créer un bouton "scanner" et une fois appuié, la procedure du scan se lance, c'est mon probleme depuis un bout de temps, je n'arrive pas a trouver une solution.
merci !
Chrysostome Messages postés 121 Date d'inscription vendredi 17 octobre 2003 Statut Membre Dernière intervention 14 octobre 2016
22 nov. 2006 à 18:38
J'ai essayé de la convertir en VBA, je n'ai pas réussi à la faire fonctionner.
Jomba Messages postés 58 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 22 juillet 2010
21 mars 2006 à 16:35
Désolé, après ma mise à jour, je me suis aperçu que j'avais oublié de changer la déclaration d'une variable :
iRetour correspond en fait à l_Retour
bosino Messages postés 1 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 16:38
Est-ce que le .dll a été développé par tes soins??
Si c le cas pourrait-tu me mettre le code source, car j'aimerais savoir comment on peut dialoguer avec un périphérique utilisant un driver Twain. J'essai de communiquer avec une camera pour acquerir des images, mais sans succès pour l'instant!!!
Merci
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
1 mars 2006 à 18:14
Il s'agit d'une source .net ! il faut cocher la case .net dans ce cas la.
Rejoignez-nous