Page 1 sur 1

impression auto. des fichiers déposés dans un dossier

Posté : jeu. 08 août 2019 02:18
par sfaye
Bonjour,
Je suis tout nouveau et j'ai découvert accidentellement votre forum et donc le langague AutoIt.
Je me permet de demander votre aide sur un script permettant d'imprimer les fichiers pdf d'un répertoire automatiquement.
Je suis parti des exemples du sujet "impression auto. des fichiers déposés dans un dossier" (viewtopic.php?t=9835).
Le script fonctionne, sauf que j'ai quelques ratté. Des fois le fichier est supprimer sans impression. Je pense que le soucis vient du temps d'attentes entre deux impressions et temps pour tester la présence d'un nouveau fichier. Je souhaite lancer l'impression automatiquement lorsque le fichier est enregistrer dans le répetoire.
Merci d'avance
$dir = "C:\FACTURES"     ; Emplacement des ficheirs
$archives = "C:\FACTURES_ARCHIVES\" ; Emplacement des
$timeToWait = 60   ; Temps d'attente entre 2 cycles (en secondes)
$pdfReader = "C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe"
$pdfReaderParams = "/p"

While 1

    ; On liste les fichier PDF
    $search = FileFindFirstFile($dir & "\*.pdf")

    If $search <> -1 Then
   
        While 1
            Local $pdfFile = FileFindNextFile($search)  ; On liste les fichiers 1 à 1
            If @error Then ExitLoop ; On sort de la boucle à la fin de la liste

            ; On lance le Reader avec les options d'impression
            RunWait( $pdfReader & ' ' & $pdfReaderParams & ' "' &  $dir & "\" & $pdfFile & '"')
         
            ;FileCopy( $dir & "\" & $pdfFile , $archives , $FC_OVERWRITE + $FC_CREATEPATH )
            ; On supprime le fichier pour qu'il ne soit pas imprimé le coup d'après
            FileDelete($dir & "\" & $pdfFile)          
        WEnd
     
    EndIf
   
    FileClose($search)
   
    ; On attend un moment avant de tester de nouveau la présence de fichiers PDF
    Sleep($timeToWait * 500)

WEnd

Re: impression auto. des fichiers déposés dans un dossier

Posté : jeu. 08 août 2019 16:31
par mikell
Peux pas tester, mais personnellement je tenterais de forcer la fermeture de Foxit après chaque impression avec un
ProcessClose("FoxitReader.exe")
ProcessWaitClose("FoxitReader.exe")