* *
* *
abracadabraPDF.net
Services
abracadabra-Bonus
PDFs de démo
Articles publiés
ACElogo.gifTutotrucs & astuces - Création d'un champ DATE à remplissage automatique avec Acrobat


Créer un champ DATE est facile dans Acrobat, il faut tracer le champ avec l'outil Formulaire (F) et lui assigner le type 'Texte' dans les Propriétés du champ, ou bien tracer avec l'outil 'Formulaire-champ de texte' dans les versions 6 et ultérieures.

Dans les Propriétés du champ, après quelques réglages esthétiques dans l'onglet Aspect, il n'y a plus qu'à assigner le format de date désiré dans l'onglet Format, et à valider (OK).

Attention cependant aux formats de date anglo-saxons dans lesquels le mois précède le jour...

Dans Acrobat le format équivalent à celui sélectionné ci-dessous est 'd-mmm-yyyy'. Les formats de date y sont personnalisables, avec une prévisualisation directe.


Dateur automatique
Acrobat 4 & 5

 

Dateur automatique
Acrobat 6+


• Le code JavaScript

Non, pas de panique.

C'est très simple à mettre en œuvre, même pour un(e) débutant(e)...
Qui ne connait pas le copier/coller ?

Dans le menu Document il faut 'Définir une action liée' à l'ouverture de la page. C'est cette action qui remplira automatiquement le champ DATE.

Dans Acrobat 6+ cette action n'est pas accessible par la barre de menu, il faut afficher l'onglet Pages et cliquer sur la vignette concernée pour afficher le menu contextuel (clic-droit) et sélectionner 'Propriétés de la page...'.

 

Dateur automatique
Acrobat 4 & 5

 

Dateur automatique
Acrobat 6+


Dans 'Actions liées à la page', il faut sélectionner l'évènement 'Ouverture de la page' et cliquer sur 'Ajouter' pour ajouter une action.

Cette action sera de type 'JavaScript', il faut ensuite cliquer sur 'Modifier' pour accéder à l'éditeur de script.

Une fois l'éditeur de script ouvert, il faut entrer le script suivant :

this.getField('DATE').value = util.printd('dd/mm/yyyy', new Date());
this.dirty = false;

Inutile d'être spécialiste pour utiliser ce bout de code, un simple copier/coller fait l'affaire. Par contre, il est indispensable aux as de la frappe de savoir que le langage JavaScript est sensible à la casse, il faut donc soigneusement respecter les capitales et les minuscules !


Dateur automatique


Dans ce script, c'est la première ligne qui sert à remplir le champ DATE avec la valeur de la date courante.

La deuxième ligne sert à réinitialiser le marqueur de modification du fichier (dirty), de sorte qu'un utilisateur ayant simplement ouvert le fichier sans rien y changer d'autre ne soit pas invité à enregistrer la modification du champ DATE au moment de la fermeture.

Attention : cette ligne de script peut devenir dangeureuse pour l'utilisateur final si l'action n'est pas placée sur la page d'ouverture du document car elle pourrait marquer comme non modifié un fichier effectivement déjà modifié. L'utilisateur n'étant ainsi pas invité à enregistrer le fichier au moment de la fermeture, il perdrait toutes les modifications effectuées...


Il ne reste plus qu'à valider les trois boîtes de dialogue, à reprendre l'outil Main, à enregistrer, à fermer, et à ré-ouvrir le fichier pour le visualiser et le tester.

Le champ DATE est réinitialisé avec la date courante à chaque ouverture du fichier PDF.


• Dans le cas d'un document multi-pages ou d'un document destiné à être enregistré par l'utilisateur, la ré-initialisation de la date à chaque fois que l'utilisateur revient sur la page d'ouverture n'est pas forcément souhaitable, cela peut même devenir un inconvénient.

Dans ce cas il conviendra d'utiliser un code JavaScript un peu plus élaboré :

Il faut retourner dans la boîte de dialogue 'Actions liées à la page', sélectionner l'opération 'JavaScript', et cliquer sur 'Modifier' pour entrer le script suivant :

if (this.getField('DATE').value == '')
{this.getField('DATE').value = util.printd('dd/mm/yyyy', new Date());
}


Dateur automatique


Dans ce script, la première ligne sert à détecter si (if) le champ DATE a déjà une valeur (s'il contient quelque chose).

Si la réponse est non, alors le script affecte une nouvelle valeur (la date courante) au champ DATE.

Il pourrait se traduire approximativement ainsi :

Si (valeur du champ DATE est égale à rien)
{alors : valeur du champ DATE = date courante}

Mais comment faire pour que le champ DATE soit vide seulement lors de la première ouverture du document ?

Il faut double-cliquer sur le champ DATE pour accèder à la boîte de dialogue 'Propriétés du champ', et cliquer OK sans rien avoir modifié (cette action ré-initialise la valeur de n'importe quel champ dans Acrobat).


Dateur automatique


Ensuite il faut immédiatement enregistrer le document PDF tel quel (avec un champ DATE sans valeur), ou l'enregistrer sous pour l'optimiser (bien sur, cette manipulation est à répéter chaque fois que l'on modifie le document original).

Ainsi dans un PDF de plusieurs pages le champ DATE ne sera pas ré-initialisé à chaque fois que l'utilisateur reviendra sur la page d'ouverture.

Et dans un PDF destiné à être enregistré par l'utilisateur c'est la date du premier enregistrement qui sera conservée dans le document, ensuite l'utilisateur est libre de la modifier ou non.



C'est tout !


Date de création : 13/02/2007 : 21:10
Dernière modification : 23/06/2010 : 07:30
Catégorie : Tutotrucs & astuces
Page lue 710 fois


Imprimer l'article Imprimer l'article

Réactions à cet article


Réaction n°4 

par abracadabraPDF le 29/05/2007 : 18:52

Ce script peut fonctionner jusqu'à la version 4 d'Acrobat, le problème est probablement autre...

wink

Réaction n°3 

par estheb le 22/05/2007 : 09:09

Oui, mais comment faire cela (champ date auto) avec Acrobat 8.0, car même en enregistrant le pdf sous un format compatible 5.0, aucuns scripts  (javascript) ne semblent  fonctionner...?

Mercismile


Réaction n°2 

par abracadabraPDF le 21/03/2007 : 14:22

Adobe Designer existe depuis la version 7 d'Acrobat mais rien n'oblige à l'utiliser, c'est au contraire plutôt déconseillé en production car il est très moyennement compatible avec les anciennes versions et il est encore plein de bugs. Pour utiliser le champ de date automatique il faut concevoir le formulaire avec Acrobat Pro, ce qui garanti une compatibilité descendante jusqu'à la version 4...

wink

Réaction n°1 

par estheb le 21/03/2007 : 13:30

J'utilise le script de date auto avec Acrobat 5.0, mais depuis Acrobat 8.0, plus rien de marche car il faut passer par Adobe LiveCycle designer. Il exite bien un champ de type date auto, mais alors, ça marche plus pour les utilisateurs qui ont acrobat professionel 5.0 ! :o(

Merci Adobe...

Si quelqu'un peu aider...!

Merci,

Estheb

Les PDF nous facilitent bien la vie !
Ils sont partout, même lorsque vous installez un jeu vidéo, ou allez sur un casino en ligne. C’est tellement plus simple et plus pratique que de lire des pages et des pages sur un site internet…
Une petite révolution dans le monde de l’internet, qui pourrait vivre sans de nos jours ?
W3C CSS Skins Papinou © 2007 - Licence Creative Commons
^ Haut ^