# Cherche désespérement un processus d'impression automatique



## plocploc (12 Décembre 2013)

Bonjour

Depuis des semaines j'ai posté ma recherche mais sans succès sans succès.

Cela me parait simple mais je dois être très limité car je n'y arrive pas.

Je souhaite lancer des impressions automatiques.

J'ai un dossier qui va se remplir d'images (déchargement de mon appareil photo), je voudrais qu'au fur et à mesure que ce dossier se remplit les images s'impriment.

J'ai essayé avec automator; à chaque fois il me dit que l'action n'a pas été fournie avec les données requises.
J'ai essayé différentes combinaisons cela ne marche jamais.

Imaginons que j'ai 5 ans, quelqu'un peut-il m'expliquer comment je pourrais faire (avec automator ou autre)...


Merci

---------- Nouveau message ajouté à 11h02 ---------- Le message précédent a été envoyé à 10h29 ----------

J'arrive à imprimer des images déjà dans mon dossier mais Automator n'imprime pas les images qui arrivent après...

Comment lui faire imprimer chaque nouvelle image ?

Merci et désolé pour ma confusion


----------



## ntx (12 Décembre 2013)

Tu as bien utilisé une "action de dossier" pour lancer ton script ?


----------



## plocploc (12 Décembre 2013)

Bonsoir

Action de dossier ne me donne rien... A chaque essai (si je dis imprimer à la suite de la désignation d'un dossier), Automator me dit qu'il n'y a pas les données requises

Ce que j'ai enfin réussi à faire ce matin (pour la voir vu sur un site anglo-saxon)

Obtenir les éléments du Finder indiqués > Obtenir le contenu de dossiers > Imprimer des images

Là en effet j'arrive à imprimer si les éléments sont déjà dans le dossier mais pas au fur et à mesure de leur arrivée.


MErci de votre aide !


----------



## quark67 (12 Décembre 2013)

Voici la méthode. On va oublier Automator et on va utiliser AppleScript. Ça peut paraitre long et compliqué, mais c'est parce que je détaille toutes les étapes.


On lance « Éditeur AppleScript » situé dans /Applications/Utilitaires ;
Dans la fenêtre vide qui est apparue, on colle ce code : 
	
	



```
on adding folder items to this_folder after receiving these_items
	tell application "Finder"
		repeat with i in these_items
			print i
		end repeat
	end tell
end adding folder items to
```

On clique sur le bouton « Compiler » (c'est pas dangereux). Si tout le passe bien, le texte est mis en couleur suivant la signification des termes du code précédent ;
On va dans le menu Fichier et on choisit « Enregistrer... » *(On n'utilise PAS le bouton « Enregistrer » qui a une autre signification)* en choisissant le bureau par exemple et en donnant un nom au script tel que _« ImprimerPhotos »_ en conservant le format par défaut, qui est « script » ;
Dans le Finder, on va dans le dossier _Bibliothèque_ de l'utilisateur (sous 10.7 à 10.9 c'est masqué par défaut ; pour y accéder, on va dans le menu « Aller » du Finder, en appuyant sur la touche « alt » en même-temps) ;
Dans le dossier _Bibliothèque_, il y a un dossier _Scripts_. On va à l'intérieur et on crée un dossier « Folder Action Scripts » (attention à copier scrupuleusement le nom, sans les guillemets) ;
Dans ce dossier _Folder Action Scripts_, on place le fichier du script que l'on avait enregistré sur le bureau auparavant ;
Maintenant, tu vas jusqu'au dossier dans lequel tu glisses tes photos ;
Sur ce dossier, tu fais un clic droit (ou ctrl-clic) sur ce dossier pour avoir un menu contextuel, et tu choisis tout en bas « Services &#9654; » puis « Configuration des actions de dossier... » ;
Dans la fenêtre du logiciel « Configuration actions de dossier » qui s'affiche, nommée « Choisissez un script à joindre... », tu verras des scripts au nom anglais, ainsi que le script que t'as placé dans le dossier _Folder Action Scripts_. Choisis-le ;
Vérifie bien que la case « Activer les actions de dossier » est cochée ;
Tu peux quitter le logiciel « Configuration actions de dossier ».

Voilà, il reste à tester en ajoutant des photos au dossier destiné à les recevoir.

Normalement, tout devrait se dérouler sans anicroche. Pour raison de simplification, j'ai pas demandé au script de tester si les documents mis dans le dossier sont tous des photos (si tu mets un pdf, il imprimera le pdf). Et par défaut, le script imprime avec l'imprimante par défaut, sans boite de dialogue. Tout cela peut être modifié si besoin.


----------



## plocploc (13 Décembre 2013)

Merci beaucoup quark67 de m'aider avec autant de patience et de clarté. 
Et de me mettre sur la voie de l'action Script

J'ai donc essayé... Ça a marché pour la première image reçue mais le processus n'a pas suivi...

Peut-être ai-je fait une bétise ?

J'ai un dossier (DOSSIER_X) vide à l'origine. Je lui ai accolé le script selon description

Je prends des photos que j'envoie à DOSSIER_X

Là en effet l'imprimante a sorti une première image... J'ai commencé à pousser un cri de victoire à faire trembler le voisinage mais les images suivantes n'ont pas été imprimées...

Je réessaye...


----------



## quark67 (13 Décembre 2013)

Il s'agit d'AppleScript (rien à voir avec Action Script, qui est un truc d'Adobe pour le Flash).
Je suis surpris que cela ne fonctionne qu'avec la première image. J'ai pourtant essayé en glissant 2 images ensemble, les deux sont imprimés les unes à la suite des autre (en fait, j'ai vérifié avec l'imprimante virtuelle CUPS-PDF qui « imprime » du PDF, afin d'économiser le papier). Tu peux faire une copie d'écran du contenu de la fenêtre de Éditeur AppleScript afin de vérifier que le script est bien complet ?
Sinon, peut-être faut-il insérer un délai entre chaque impression papier ? Pour vérifier cette hypothèse, je propose que tu rajoutes la ligne :

```
delay 30
```
juste après la ligne :

```
print i
```
puis que tu vas dans le menu Fichier > Enregistrer.
Cela insèrera un délai de 30 secondes entre chaque impression.
Puis tu fais le test avec 2 images glissés ensemble.
Je me permets quand-même de demander combien d'images as-tu glissé ensemble lors de tes tests ? Peut-être y a-t-il un problème lié au volume d'images glissé.

Hé oui, la programmation n'est pas une science exacte, il peut y avoir plein de facteurs qui entrent en ligne de compte et perturbent le comportement idéal. On va essayer de résoudre ce problème.


----------



## plocploc (13 Décembre 2013)

Non, ça s'arrête après la première image...

Dans un test j'avais envoyé 6 images, puis 4 puis 2...
J'ai augmenté le delay pour voir...
Mais toujours seule la 1ère s'imprime.

Je n'arrive pas à envoyer de pièce jointe sur le forum...

Voici le code (j'ai changé le delay)


```
on adding folder items to this_folder after receiving these_items
    tell application "Finder"
        repeat with i in these_items
            print i
            delay 55
        end repeat
    end tell
end adding folder items to
```


J'essaie de chercher par moi-même autour de l'AppleScript (merci de la précision, j'avais mélangé action folder et script) mais c'est difficile pour un enfant  de 5 ans...

Merci encore !


----------



## quark67 (13 Décembre 2013)

Par acquis de conscience, je viens de vérifier que le script fonctionne comme attendu, en ayant sélectionnée l'imprimante papier, et en glissant 2 images dans le dossier. Et c'est effectivement le cas : les 2 images sont imprimés, 1 par feuille.

Il y a donc quelque chose qui bloque chez toi, mais quoi ?

Pour y voir plus clair, je te propose ce script modifié :

```
on adding folder items to this_folder after receiving these_items
	tell application "Finder"
		display dialog "Nombre d'éléments : " & (count of these_items)
		repeat with i in these_items
			display dialog "Traitement de l'image : " & (i as text)
			print i
		end repeat
	end tell
end adding folder items to
```

Essaye-le avec 2 ou 3 images glissées ensemble.
Il devrait tout d'abord afficher le nombre d'images que tu as placé ensemble dans le dossier. Il devrait donc afficher 2 ou 3. Clique sur le bouton "OK" quand ça sera affiché (si tu cliques sur "Annuler", ça annule l'exécution du script, et donc l'impression).
Ensuite, pour chacune des images traitée, il va afficher l'emplacement sous la forme d'un chemin. Vérifie que c'est cohérent.

NB : après l'impression de la première image, l'application au premier plan sera l'application Aperçu (à moins que tu as défini une autre application telle que Photoshop pour l'ouverture d'image par double-clic). Puis tu verras l'icône du Finder sautiller dans le Dock. Ceci parce qu'une nouvelle fenêtre se sera affichée dans le Finder, avec le chemin de la deuxième image. Clique à nouveau sur le bouton "OK". Et ainsi de suite.

Une fois qu'on aura déterminé et corrigé la source du problème, on enlèvera l'affichage des dialogues et tu n'auras plus à appuyer sur "OK" à chaque fois.

Donne-moi le résultat des affichages et indique-moi si c'est conforme.


----------



## plocploc (13 Décembre 2013)

Tout d'abord, Quark67, je te remercie vraiment de ton aide.

Je crois avoir compris qu'il y a au départ un malentendu : je ne suis sans doute pas clair...

Je voudrais un script pour imprimer au fur et à mesure des images qui arrivent dans le dossier...

Car il s'agit d'imprimer des images que je décharge de mon appareil photo et non pas des images que j'ai déjà dans l'ordinateur et que je peux glisser "ensemble" dans le dossier.

Si je fais ce que tu me dis : je glisse ensemble 3 images, le script affiche bien "nombre d'éléments : 3"

MAIS, si je fais 3 images que je décharge au fur et à mesure dans le dossier, le Script lance la première et c'est tout...

En fait je voudrais un script plus complexe qui puisse vérifier ce qui a été imprimer et continuer (Image01, Image 02, etc...)

Quitte à placer Image01 à la corbeille pour qu'il puisse toujours en traiter une seule....


MErci beaucoup, désolé si je n'étais pas clair dans mon premier post... 

Cordialement


----------



## quark67 (13 Décembre 2013)

Tu peux laisser les images dans le dossier, il n'imprimera que les images nouvellement ajoutées.

Tu décharges les photos de quel appareil et avec quel logiciel ? (je vais faire des essais chez moi)

Sinon, ce que tu peux faire en attendant : tu décharges les photos dans un dossier A puis tu prends toutes les photos du dossier A et tu les glisses dans le dossier B auquel tu as associé le script (tu peux reprendre la première version du script). C'est pas aussi immédiat, mais ça fait ce qui est souhaité : l'impression des nouvelles photos.


----------



## plocploc (13 Décembre 2013)

Merci Quark67

Alors ce que je souhaite  c'est de pouvoir imprimer au fur et à mesure... sans avoir à changer les images de fichiers.

Parce que l'idée est la suivante :  l'appareil (un canon) se décharge au fur et à mesure de la prise de vue. Il est relié donc à l'ordinateur via le logiciel EosUtility, je le programme pour prendre des photos à intervalles régulières et ces images sont en parallèles imprimées...

Avec ton script, j'arrive à imprimer la première mais c'est tout...

J'ai longuement cherché sur le web, sans succès pour l'instant. 

Merci encore de ton aide


----------



## tatouille (13 Décembre 2013)

Bonjour, 

il vous faut un système "plus complexe, je dirais plus mature" mais faisable, qui "écouterait" les "file-system-events" e.g FSEvents, mais ceci pourrait être aussi envisagé sous la forme d'un "observer-timer".

PS: j'avais bien compris votre requête dès le premier "post".

Bien à vous.


----------



## plocploc (14 Décembre 2013)

Merci Tatouille pour cette précision importante...

Mais vous l'avez compris, je me heurte aux parois réduites de mon cerveau et je tatonne...

J'ai bien trouvé un "File System Events Programming Guide"

Mais est-ce lié à l'AppleScript ?

Bref j'ai besoin d'être sur les rails voire carrément dans le wagon...

Merci à tous


----------



## tatouille (15 Décembre 2013)

Bonjour, exemple;

Leopard FSEvents [fernLightning]

https://developer.apple.com/library...ipt/conceptual/applescriptx/concepts/osa.html


----------



## ceslinstinct (15 Décembre 2013)

plocploc a dit:


> Merci Quark67
> 
> Alors ce que je souhaite  c'est de pouvoir imprimer au fur et à mesure... sans avoir à changer les images de fichiers.
> 
> ...



En AppleScript, une façon originale de faire un contrôle.

Comme on fait pour des téléchargements sur internet.

Tu mémorise le nombre d'octets de l'original, une routine de contrôle toutes les x secondes pour voir si le même nombre pour passer alors au fichier suivant à imprimer.

Impossible de tester pour moi, au prix du litre d'encre j'ai plusieurs imprimantes (en plus le dernier modèle).

@+


----------



## plocploc (15 Décembre 2013)

MErci ceslinstinct


Je comprends bien l'idée, cela parait intéressant.

J'ai plus de mal à composer le code...


----------



## plocploc (17 Décembre 2013)

Je continue à chercher la bonne solution sans beaucoup de succès...

On m'a incité à passer par Python... Mais je n'ai pas réussi encore à faire marcher le bout de code qu'on m'a proposé...

Pourtant sur le fond, cela ne devrait pas être si compliquer : demander à l'ordinateur d'imprimer les images qui arrivent au fur et à mesure dans un dossier...

Peut-être en bouclant l'Applescript proposé par Quark67 qui a bien marché mais pour la première image ?

Merci d'avance


----------

