Programmes & scripts > C++ et VB

Macro d'acquisition de texte Omnipage pour Word

Type: macro Visual Basic pour Application (VBA)
Spécification: Configuration d'Omnipage pour reconnaissance de caractère (OCR) sous Word 97/2000
Objet: Simplifier l'acquisiton de texte
Action:
  • Lance le nombre d'acquisition de texte spécifié par l'utilisateur
  • Enlève l'éventuelle bande noire au bas de la page qui apparaît souvent lors d'une scannérisation
  • Sauvegarde le document après chaque acquisition

Recommandation d'installation de la macro

Rappel: Omnipage doit être configuré pour que la reconnaisance de caractère (OCR) puisse se faire sous Word (menu Outils | Option, onglet Ocr aware).

  1. Placer de préférence la macro dans le fichier "Normal.dot" (modèle de document Word) qui est automatiquement chargé au lancement de Word.
    1. Pour cela :
    2. Ouvrir Visual Basic Editor, menu Outils | Macro (Alt+o+m+v)
    3. Ouvrir l'Explorateur de projet, menu Affichage (Ctrl+r)
    4. Sélectionner le projet "Normal (Normal)"
      • Si vous téléchargez le module

      • Importer le fichier ("acq_mngr.bas"), menu fichier
      • Si vous copiez le code

      • Insérer un module, menu Insertion
    5. Fermer l'éditeur VB
  2. Créer un raccourci/clavier pour appeler la macro
    1. Fenêtre Personnaliser, menu Outils
    2. Cliquer sur le bouton "Clavier..."
    3. Sélectionner dans le volet de gauche "Macros" et dans celui de droite le nom de la macro ("acq_mngr")
    4. Dans nouvelles touches presser les touches de raccourci choisies (ex. Ctrl+<)

Téléchargement du module macro

acq_mngr.zip 1,61 ko Créé le 13/10/00

NB: code commenté

Cliquer ici pour télécharger scanmngr.bas

Consultation du code macro


Sub scanmngr()

' Cette macro permet d'effectuer plusieurs acquisitions de texte
' Omnipage sous Word 97/2000
' Omnipage doit être configuré pour permettre la reconnaissance sous
' Word (menu outils|option onglet Microsoft Word).
' suppression de l'éventuelle bande noire au bout de chaque doc
' sauvegarde du texte à l'issue de chaque acquisition
' Déclaration des variables
Dim I, NBScann, myRange, NL, EndScann, MsgAnnulSave
' Etiquette de début
debut:
' inputbox à l'entée de la Sub permet de préciser le NB de scann à effectuer
    NBScann = InputBox("Saisir le nombre de scannérisation(s) à effectuer.", "Paramètres de scannérisation")
    ' Si le bouton Cancel a été pressé alors fin macro
    If NBScann = Cancel Then End
    ' Si Ok le NBScann sera un entier >=1
    If NBScann = "" Or NBScann < 1 Then NBScann = 1
    If NBScann <> Int(NBScann) Then NBScann = CInt(NBScann)
' Répétition jusqu'à ce que nb de scann choisi par l'utilisateur soit atteint
For I = 1 To NBScann Step 1
    ' Exécute la macro d'Omnipage
    Application.Run "OmniPage_Ocr"
    ' Affectation de variable
    Set myRange = ActiveDocument.Content
' Section effacement de la bande noire éventuelle au bas de l'écran
    ' Recherche dans le doc du caractère de type
    ' alphabétique ou numérique
    With myRange.Find
        .Forward = False
        .ClearFormatting
        .MatchWholeWord = False
        .MatchCase = False
        .MatchWildcards = True
        .Wrap = wdFindContinue
        .Execute findText:="[a-z,0-9]"
    End With
    ' Sélection du résultat de la recherche
    If myRange.Find.Found = True Then myRange.Select
    ' Se rend à la fin de la ligne
    Selection.EndKey unit:=wdLine, Extend:=wdMove
    ' Sélection de la fin de la ligne ou se trouve le cursuer jusqu'à la fin du document
    Selection.EndKey unit:=wdStory, Extend:=wdExtend
    ' Efface la sélection
    Selection.Delete
' Fin de la section bande noire
    ' Nouveau paragraphe
    Selection.TypeParagraph
    ' Routine de gestion d'erreur
    On Error GoTo AnnulSave
    ' Sauvegarde le doc et affiche la boîte "Enregistrer sous" si le
    ' le doc n'a pas été sauvegardé auparavant
    ActiveDocument.Save
Next I
    ' NL=à la ligne
    NL = Chr(10)
    ' msgbox informe de la fin de la session et propose de reprendre
    EndScann = MsgBox("Vos " & NBScann & " scannérisations sont terminées." & NL & "Voulez-vous reprendre la scannérisation ?", 68, "Fin de scann")
    ' Si yes on retourne au début (étiquette début) sinon fin
    If EndScann = 6 Then GoTo debut Else End
' Etiquette de gestion d'erreur
AnnulSave:
    ' si les changments du doc n'ont pas été sauvegardés car l'utilisateur
    ' à presser Annuler dans la boîte 'Enregistrer sous" un msg apparaît (vb_okcancel)
    If ActiveDocument.Saved = False Then MsgAnnulSave = MsgBox("Vous n'avez pas sauvegardé les changments apportés au document.", 65, "Message du manager de scannérisation")
    ' si l'utilisateur presse ok la procédure reprend à l'instruction suivante
    ' sinon elle reprend à celle qui a causé l'erreur
    If MsgAnnulSave = 1 Then Resume Next Else Resume
End Sub
Accueil | Programmes & scripts | Trucs & astuces | Liens | CV | Contact | Emploi & handicap
ChifLett, jeu interactif de chiffres et de lettres         MetaDico, Meta Dictionnaire]
Sserveur:
Maintenu:
Modifié:
www.chez.com/gt/
Geraud Tardif
26 Février 2002