Skip to main content
Participating Frequently
November 27, 2023
Question

Javascripts adobe pdf aide scripts

  • November 27, 2023
  • 4 replies
  • 4172 views

Bonjour je cherche un script pour mettre dans un plan/formulaire adobe 

voici la réglementation : les variables sont Coteinterieurrail et Hauteurmax, elles dépendantes de l'une et de l'autre voici l'exécution, la personne qui remplira le pdf devra indiquer sur la variable 1 coteinterieurrail un nombre entre 0 et 4600 ou la seconde 2 coteinterieurrail comprend entre 4601 et 5800 Pour la Hauteurmax un nombre entre 676 et 1000 (pour la variable 1 ) et entre 714 et 1000 pour la 2, il ne pourra pas être inférieur à 676 et suppérieur à 1000 pour la 1 ou 714 et 1000 pour la 2 sinon adobe lui indique une erreur lorsque l'utilisateur va inscrire les chiffres. J'ai essayé plusieurs script mais aucun ne fonctionne : 

 

En plus l'éditeur d'Adobe refuse un script sur différentes lignes, le srcipt doit être à la chaîne en une seule ligne ce qui complique les choses s'il y a des séparations. 

Je vous remercie 

This topic has been closed for replies.

4 replies

JR Boulay
Community Expert
Community Expert
November 29, 2023

Vous ne m'aidez pas beaucoup à vous aider !

 

"QUand l'utilisateur va remplir un plan il va remplir 2 champs, 1 champ coteinterieiurrail compris de 0 à 4600 et entre 4601 et 5800"

Quels sont les noms de ces deux champs ? (Vous n'en utilisez qu'un seul dans votre script).

Que doit il se passer si l'utilisateur remplit ces deux champs au lieu d'un seul ?

Pouvez-vous partager tout ou partie de ce PDF ? (Les captures ne sont pas utiles)

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
November 30, 2023

Bonjour; du coup à force de perséverance j'ai trouvé le script et il fonctionne, je suis contente ! 

 

function verifierHauteurMax(Coteinterieurrail, Hauteurmax) {

    var messageErreur = '';

    Coteinterieurrail = parseInt(Coteinterieurrail);

    Hauteurmax = parseInt(Hauteurmax);

 

    if (Coteinterieurrail >= 0 && Coteinterieurrail <= 4600) {

        if (Hauteurmax < 676 || Hauteurmax > 1000) {

            messageErreur = 'La hauteur maximale pour une cote intérieure de 0 à 4600 doit être comprise entre 676 et 1000.';

        }

    } else if (Coteinterieurrail >= 4601 && Coteinterieurrail <= 5800) {

        if (Hauteurmax < 714 || Hauteurmax > 1000) {

            messageErreur = 'La hauteur maximale pour une cote intérieure de 4601 à 5800 doit être comprise entre 714 et 1000.';

        }

    } else {

        messageErreur = 'La cote intérieure du rail doit être comprise entre 0 et 5800.';

    }

    return messageErreur;

}

 

this.getField("Coteinterieurrail").setAction("Validate", "var result = verifierHauteurMax(event.value, this.getField('Hauteurmax').value); if (result !== '') { app.alert(result); event.rc = false; }");

this.getField("Hauteurmax").setAction("Validate", "var result = verifierHauteurMax(this.getField('Coteinterieurrail').value, event.value); if (result !== '') { app.alert(result); event.rc = false; }");

 

Merci en tout cas ! 

 

JR Boulay
Community Expert
Community Expert
November 28, 2023

Qu'est-ce qui doit déclencher le changement de fourchette ?

Pouvez-vous partager tout ou partie de ce PDF ?

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
November 28, 2023

Bonjour, merci de votre réponse, voici ce que je veux faire sur un plan PDF : 

QUand l'utilisateur va remplir un plan il va remplir 2 champs

1 champ coteinterieiurrail compris de 0 à 4600 et entre 4601 et 5800

et 1 champ Hauteurmax qui va dépendre du champ coteinterieurrail en effet pour les valeurs compris entre 0 et 4600 la hauteurmax devra être entre 676 et 1000 si l'utilasateur rentre un nombre <à 676 et >1000 je veux que PDF lui indique une erreur. De même pour le champ 4601 à 5800 la Hauteurmax doit être comprise entre 714 et 1000. 

J'ai un script le message apparaît bien cette fois ci, mais malheureusement même si les champs sont rentrés correctement par l'utilisateur, il m'indique une erreur voici mon script :

 function verifierHauteurMax(Coteinterieurrail, Hauteurmax) { var messageErreur = ''; Coteinterieurrail = parseInt(Coteinterieurrail); Hauteurmax = parseInt(Hauteurmax); if (Coteinterieurrail >= 0 && Coteinterieurrail <= 4600) { if (Hauteurmax < 676 || Hauteurmax > 1000) { messageErreur = 'La hauteur maximale pour une cote intérieure de 0 à 4600 doit être comprise entre 676 et 1000.'; } } else if (Coteinterieurrail >= 4601 && Coteinterieurrail <= 5800) { if (Hauteurmax < 714 || Hauteurmax > 1000) { messageErreur = 'La hauteur maximale pour une cote intérieure de 4601 à 5800 doit être comprise entre 714 et 1000.'; } } else { messageErreur = 'La cote intérieure du rail doit être comprise entre 0 et 5800.'; } return messageErreur; } var result = verifierHauteurMax(this.getField("Coteinterieurrail").value, this.getField("Hauteurmax").value); if (result !== "") { app.alert(result); event.rc = false; }

J'ai joint des photos avec des champs exemples qui correpondent bien mais qui indique tout de meme une erreur. 

JR Boulay
Community Expert
Community Expert
November 27, 2023

Pourquoi faire compliqué quand on peut faire simple ?

Il suffit de mettre les champs au format Nombre et ensuite utiliser la Validation :

 

Acrobate du PDF, InDesigner et Photoshopographe
Participating Frequently
November 28, 2023

Bonjour effectivement j'y ai pensé , c'est la solution la plus simple mais du coup je dois faire 2 pdf un pour une longueur jusque 5600 et un second pdf jusque 7800 et ensuite j'indique les fourchettes sur chacun; mais justement je voulais éviter cette manipulation pour éviter que les personnes qui vont utiliser les plans ont un dossier avec 30 plans dedans au lieu de 15. C'est pour cela que je voulais trouver un script qui me permettait de tout assembler sur un même plan. Je vous remercie 

try67
Community Expert
Community Expert
November 27, 2023

Scripts can be located on multiple lines, of course.

- What happens when you enter the code? What error message are you getting?

- Can you post the code (as text, not an image), and/or the actual file?

- I would recommend using "var" instead of "let".

- I would also recommend not using accented characters in the names of your functions.

Participating Frequently
November 28, 2023

Hello, thank you for your response, the error message issyntaxerror : missing , before statement 1 : à la ligne 2 pour ce code "function verifierHauteurMax(Coteinterieurrail, Hauteurmax) {let messageErreur = '';if (Coteinterieurrail >= 0 && Coteinterieurrail <= 4600) { if (!(Hauteurmax >= 676 && Hauteurmax <= 1000)) {messageErreur = 'La hauteur maximale pour une cote intérieure de 0 à 4600 doit être comprise entre 676 et 1000.';}} else if (Coteinterieurrail >= 4601 && Coteinterieurrail <= 5800) {if (!(Hauteurmax >= 714 && Hauteurmax <= 1000)) { messageErreur = 'La hauteur maximale pour une cote intérieure de 4601 à 5800 doit être comprise entre 714 et 1000.';} } else {messageErreur = 'La cote intérieure du rail doit être comprise entre 0 et 5800.';}return messageErreur;}"

or the code is not validated I have an error sound. Thank you