IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

taille du scan et erreur en fin de code


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut taille du scan et erreur en fin de code
    Bonsoir à tous,
    voila j'utilise ce code ci -dessous pour scanner un document en format PDF, il fonctionne en partie et l'image qui est convertie en PDF n'est pas au format original mais prend toute le format A4.

    Par exemple un post it scanné est agrandit .
    Comment modifier le code ci-dessous pour que le scan garde la tailleoriginale?

    DE plus à la fin de l'éxécution du code (scan au format pdf fait) windev signale un bug à la fin du code .
    Est ce qu'il manque quelque chose pour finaliser le code?

    Par aavnce je vous remercie.

    Cordialement.

    Le code du bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    RépertoireDéfaut est une chaîne
     
    //Le répertoire initiale lors de l'ouverture du sélecteur de fichier sera le répertoire "exe" de l'application.
    RépertoireDéfaut=ComplèteRep(fRepExe())
     
     
     
     
    // Nom du PDF
    sNomFichierScanne est une chaîne 
    sNomFichierScanne=fSélecteur(RépertoireDéfaut,"","Enregistrez le  fichier.....","Tous fichiers (*.*) "+ TAB+"*.*"+RC+fFiltreImage(),"PDF",fselCrée+fselExiste)
     
    // Lancement de la génération du PDF (voir détail de la procédure ci-après)
    nNbPages est un entier
    nNbPages = TwainMultiPageVersPDF(sNomFichierScanne, 90, Faux, TwainRVB, 1)
     
    // Au moins une page numérisée ?
    SI nNbPages = 0 ALORS
    	// Erreur durant le scanne
    DélaiAvantFermeture(1000)
    Erreur("Echec de la numérisation", ErreurInfo())
     
    SINON
    	// Affichage du fichier généré
    	LanceAppliAssociée(sNomFichierScanne)
    	// Affichage d'un message d'information
    	Info(ChaîneConstruit("%1 pages ont été numérisées dans le fichier %2.", nNbPages, sNomFichierScanne))
    FIN


    La procédure locale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    PROCEDURE TwainMultiPageVersPDF(sNomPDF,nQualite est un entier=90,bInterfaceUtilisateur=Faux, nTypeImages=0, 
    nNombreBitsParPixel=0 , nRésolutionImages=0, nContrasteImages=0, nBrillanceImages=0 , bModeRectoVerso=Faux)
    ListeFichierTemps est une Liste de chaînes
    Sablier(Vrai)
     
    // Le fichier destination existe ?
    SI fFichierExiste(sNomPDF)=Vrai ALORS
    	// Oui, suppression du fichier
    	SI fSupprime(sNomPDF)=Faux ALORS
    		// Erreur en cas d'échec de suppression
    		RENVOYER Faux
    	FIN
    FIN
     
    // Génération d'un PDF avec les ordres d'impression
    iDestination(iPDFGénérique, sNomPDF)
     
    // Nom de fichier destination temporaire
    sNomFichierScanne est une chaîne
     
    bResScan est un booléen
    nNbPage est un entier=0
    BOUCLE
    	// Format A4
    	TwainZoneScan(0, 0, 210, 297)
    	// Scanne
    	SI nTypeImages = TwainNoirBlanc ALORS
    		// SI N&B un scanne dans un BMP monochrome est plus petit
    		sNomFichierScanne = fExtraitChemin(fFichierTemp(), fFichier+fDisque+fRépertoire) + ".BMP"
    		bResScan = TwainVersBMP(sNomFichierScanne,bInterfaceUtilisateur, nTypeImages, 1 , 
    		nRésolutionImages, nContrasteImages, nBrillanceImages , bModeRectoVerso)
    	SINON
    		// Sinon dans un JPG
    		sNomFichierScanne = fExtraitChemin(fFichierTemp(), fFichier+fDisque+fRépertoire) + ".JPG"
    		bResScan=TwainVersJPEG(sNomFichierScanne, nQualite,bInterfaceUtilisateur, nTypeImages, nNombreBitsParPixel , 
    		nRésolutionImages, nContrasteImages, nBrillanceImages , bModeRectoVerso)
    	FIN
    	// Scanne OK ?
    	SI bResScan ALORS
    		// Oui, mémorise le nom du fichier image temporaire (pour le supprimer à la fin)
    		Ajoute(ListeFichierTemps, sNomFichierScanne)
    		nNbPage++
    		// C'est la première page ?
    		SI nNbPage>1 ALORS
    			// non donc on fait un saut de page
    			iSautePage()
    		FIN
    		// Vers impression sur toute la page
    		iImprimeImage(sNomFichierScanne, 0, 0, iLargeurPage(), iHauteurPage(), iAffichageHomothétique)
    		// Abandon utilisateur (sur la fenêtre d'annulation de l'impression) ?
    		SI iImpressionAbandonnée() ALORS SORTIR
    	SINON
    		// Pb de scanne, on arrête ?
    		SI OuiNon(ErreurInfo(), "Continuer la numérisation ?")=Faux ALORS SORTIR
    	FIN
    	// Encore des pages ?
    	SI TwainEtat() = teNonChargé ALORS SORTIR
    	// Oui, donc page suivante
    FIN
     
    // Renvoie le nombre de pages scannées
    RENVOYER nNbPage
     
    FIN:
    // L'impression a au moins commencé ?
    SI nNbPage>0 ALORS
    	// Oui, donc fin génération du PDF (fin de l'impression)
    	iFinImprime()
    FIN
    // Suppression des images temporaires
    POUR TOUT ELEMENT sNomFichierScanne DE ListeFichierTemps
    	fSupprime(sNomFichierScanne)
    FIN
    Sablier(Faux)

  2. #2
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, une idée peut-être pour le format originale :
    Citation Envoyé par nrdz83 Voir le message
    Bonsoir à tous,
    .
    La procédure locale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    PROCEDURE TwainMultiPageVersPDF(sNomPDF,nQualite est un entier=90,bInterfaceUtilisateur=Faux, nTypeImages=0, 
    nNombreBitsParPixel=0 , nRésolutionImages=0, nContrasteImages=0, nBrillanceImages=0 , bModeRectoVerso=Faux)
    ListeFichierTemps est une Liste de chaînes
    Sablier(Vrai)
    
    // Le fichier destination existe ?
    SI fFichierExiste(sNomPDF)=Vrai ALORS
    	// Oui, suppression du fichier
    	SI fSupprime(sNomPDF)=Faux ALORS
    		// Erreur en cas d'échec de suppression
    		RENVOYER Faux
    	FIN
    FIN
    
    // Génération d'un PDF avec les ordres d'impression
    iDestination(iPDFGénérique, sNomPDF)
    
    // Nom de fichier destination temporaire
    sNomFichierScanne est une chaîne
    
    bResScan est un booléen
    nNbPage est un entier=0
    BOUCLE
    	// Format A4
                 LargeurScan = TwainLargeurSource()
                 HauteurScan = TwainHauteurSource()
                TwainZoneScan(0, 0, LargeurScan, HauteurScan)
    
    	      // Scanne
    	SI nTypeImages = TwainNoirBlanc ALORS
    		// SI N&B un scanne dans un BMP monochrome est plus petit
    		sNomFichierScanne = fExtraitChemin(fFichierTemp(), fFichier+fDisque+fRépertoire) + ".BMP"
    		bResScan = TwainVersBMP(sNomFichierScanne,bInterfaceUtilisateur, nTypeImages, 1 , 
    		nRésolutionImages, nContrasteImages, nBrillanceImages , bModeRectoVerso)
    	SINON
    		// Sinon dans un JPG
    		sNomFichierScanne = fExtraitChemin(fFichierTemp(), fFichier+fDisque+fRépertoire) + ".JPG"
    		bResScan=TwainVersJPEG(sNomFichierScanne, nQualite,bInterfaceUtilisateur, nTypeImages, nNombreBitsParPixel , 
    		nRésolutionImages, nContrasteImages, nBrillanceImages , bModeRectoVerso)
    	FIN
    	// Scanne OK ?
    	SI bResScan ALORS
    		// Oui, mémorise le nom du fichier image temporaire (pour le supprimer à la fin)
    		Ajoute(ListeFichierTemps, sNomFichierScanne)
    		nNbPage++
    		// C'est la première page ?
    		SI nNbPage>1 ALORS
    			// non donc on fait un saut de page
    			iSautePage()
    		FIN
    		// Vers impression sur toute la page
    		iImprimeImage(sNomFichierScanne, 0, 0, iLargeurPage(), iHauteurPage(), iAffichageHomothétique)
    		// Abandon utilisateur (sur la fenêtre d'annulation de l'impression) ?
    		SI iImpressionAbandonnée() ALORS SORTIR
    	SINON
    		// Pb de scanne, on arrête ?
    		SI OuiNon(ErreurInfo(), "Continuer la numérisation ?")=Faux ALORS SORTIR
    	FIN
    	// Encore des pages ?
    	SI TwainEtat() = teNonChargé ALORS SORTIR
    	// Oui, donc page suivante
    FIN
    
    // Renvoie le nombre de pages scannées
    RENVOYER nNbPage
    
    FIN:
    // L'impression a au moins commencé ?
    SI nNbPage>0 ALORS
    	// Oui, donc fin génération du PDF (fin de l'impression)
    	iFinImprime()
    FIN
    // Suppression des images temporaires
    POUR TOUT ELEMENT sNomFichierScanne DE ListeFichierTemps
    	fSupprime(sNomFichierScanne)
    FIN
    Sablier(Faux)
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonsoir et merci pour ton aide je vais essayer avec ta piste.

    Par contre je n'arrive pas à trouver une solution pour le code qui plante à la fin.

    Faut il mettre quelque chose à la fin d'une procédure?

    Par avance merci pour votre aide.

    Amitiés

Discussions similaires

  1. [MySQL] Erreur en fin de fichier
    Par PrinceMaster77 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/11/2009, 15h37
  2. erreur à la fin du programme
    Par adel25 dans le forum SL & STL
    Réponses: 2
    Dernier message: 22/02/2009, 10h50
  3. Erreur de fin de programme
    Par Sygénème dans le forum Scheme
    Réponses: 7
    Dernier message: 21/06/2008, 19h22
  4. Erreur à la fin d'un programme.
    Par Rappunzell dans le forum C
    Réponses: 2
    Dernier message: 06/12/2007, 06h22
  5. Désactiver les messages d'erreur de Fin de programme
    Par spynux dans le forum Windows XP
    Réponses: 4
    Dernier message: 12/09/2007, 20h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo