Donnez vie à vos documents numériques !
 

Pradow

Toutes mes réponses sur les forums

Affichage de 23 réponses de 1 à 23 (sur un total de 23)
  • Auteur
    Réponses
  • en réponse à : Verrouiller les champs de la page en cours sauf exception #66226
    Pradow
    Membre

    Bonjour,
    Alors en script de validation, tu peux appliquer la ligne suivante à ton champ de signature :
    page = event.target.page
    for (k=0;k}
    }

    Pour l’exception, tu peux toujours réactiver ton champ après, je ne sais pas quel est le nom de ton champ mais tu peux appliquer

    this.getField(“field_name”).readonly = false

    en réponse à : Ajouter des actions et des signets à un document #66187
    Pradow
    Membre

    Ah bigre, cela fonctionne parfaitement ! Merci cette réponse concise et efficace, vous m’enlevez une sacrée épine du pied!!
    Bonne journée, Pradow :)

    en réponse à : Modification du remplissage automatique d’un formulaire #66121
    Pradow
    Membre

    Bonjour, ça n’est pas exactement la solution que tu recherche, mais si tu appliques la propriété field.editable = true, l’utilisateur peut écrire lui-même une proposition dans le champ.
    Bon courage,Pradow.

    Pradow
    Membre

    Pour un groupe de radio buttons, chaque bouton va être associé à un indice entier. Comme ça, deux boutons du même groupe vont être différenciés par cet indice. C’est cet indice qui va être rentré dans  la fonction isBoxChecked.
    Dans ton cas, le groupe de radio buttons s’appelle “macarons”, et possède 3 éléments, d’indices 0, 1 et 2. Ces indices sont attribués dans l’ordre de création des boutons.
    Je ne peux que te conseiller de lire la documentation, chapitre Javascript API > Field
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf

    Pradow
    Membre

    Salut, alors par hasard est ce qu’il ne faudrait pas faire le test :
    this.getField(“macarons”).isBoxChecked(1) et isBoxChecked(2)?En t’assurant bien que les numéros 0, 1 et 2 sont attribués aux bons champs?

    en réponse à : Signature de document plus rapide #66101
    Pradow
    Membre

    Très bien, je vais me renseigner là dessus. Merci beaucoup pour ta réponse rapide!

    en réponse à : Signature de document plus rapide #66099
    Pradow
    Membre

    Malheureusement j’ai la contrainte de travailler sur Nuance Power PDF, et ça n’a pas l’air compatible  :Smiley02:

    en réponse à : PDF renommer titre et envoi par mail #66036
    Pradow
    Membre

    Salut,
    alors si ça peut t’aider, je te propose de mettre un évènement Onclick sur ton champ de signature, avec une action JS :

    Code:
    date = this.getField(“DATE”).value;nom = this.getField(“NOM”).value;this.saveAs(nom + “_” + date + “_”+”demande.pdf”)

    La grosse contrainte est que la fonction saveAs ne peut être utilisée que dans un contexte privilégiée. Il faut donc la reconstruire sous forme d’une trustedFunction. Je te laisse te renseigner sur le sujet, cela nécessite quelques droits d’administrateur pour modifier un peu Acrobat.
    Eventuellement, tu peux mettre un event qui boucle sur le code app.execMenuItem(“SaveAs”), et qui relance ce bout de code tant que le document n’a pas le nom que tu veux, cela force l’utilisateur à enregistrer le document avec le nom que tu souhaites.
    Ce n’est pas une bonne solution longue durée mais pour faire des tests, cela te permettra peut-être d’avancer un peu.

    en réponse à : Utilisation de scripts pour travailler dans des lots PDF #66034
    Pradow
    Membre

    Bonjour, je ne sais pas si vous voyez de quoi je parle quand je parle de lots PDF. Les répertoires ne sont pas dans l’ordinateur mais dans le PDF lui-même.
    Quand je demande la propriété app.activeDocs, il me retourne deux documents :Le document correspondant au lot PDF (qui est sous le format PDF), et le document du lot ouvert actuellement, qui est enregistré dans un répertoire temporaire.Tout ce que je recherche, c’est à connaitre les propriétés du lot PDF, ses répertoires etc, mais qui ne sont associés à rien par rapport à l’ordinateur, tout est enregistré sous le format PDF

    en réponse à : Utilisation de scripts pour travailler dans des lots PDF #66032
    Pradow
    Membre

    Pardon, je relis ton message, en fait je ne sors pas du document, les dossiers/sous-dossiers dont je te parle sont contenus à l’intérieur du lot PDF, ce sont les dossiers du lot PDF.

    en réponse à : Utilisation de scripts pour travailler dans des lots PDF #66031
    Pradow
    Membre

    Très bien je vois, je pense faire ça alors.
    Bonne journée

    Pradow
    Membre

    Bonjour, savez-vous si la situation a évolué depuis? Ou s’il faut toujours enregistrer le document?

    en réponse à : Ouvrir un document avec app.openDoc #65965
    Pradow
    Membre

    Bonjour, merci beaucoup pour ta réponse très claire. Bonne journée!

    en réponse à : Créer une nouvelle page vierge #65939
    Pradow
    Membre

    D’après le nom du document il semble que tu sois sur Reader … Malheureusement cela ne te permettra pas de modifier ton document, tout ce que tu as le droit de faire, c’est ajouter des champs de formulaire, en plus de toutes les actions du menu (barre en haut de l’application). Il faudra que les utilisateurs aient un éditeur PDF, logiciels payants. S’il le faut, tu peux déjà créer la page, ajouter dessus un champ complètement blanc pour faire disparaitre le contenu, et supprimer ce champ à l’appui d’un bouton.

    Pradow
    Membre

    Bonjour, désolé pour les multiples messages.
    Une petite nuit de sommeil et quelques cafés plus tard, je me rends compte qu’en fait tout fonctionne très bien, les trusted functions fonctionnent très bien quand elles sont définies dans global.js. Seule exception faite pour app.newDoc qui ne va jamais fonctionner, et en y repensant c’est PEUT-ETRE lié au fait que je suis sur Adobe Acrobat Reader, et donc de base je ne suis pas censé pouvoir créer de document …

    en réponse à : Créer une nouvelle page vierge #65935
    Pradow
    Membre

    Bonjour ! Dans ta console, tu peux essayer this.newPage(), ça devrait fonctionner :)

    Pradow
    Membre

    1563365673-img.jpg

    Voici mes paramètres de protection renforcée

    Pradow
    Membre

    Non, il me met exactement le même message d’erreur :

    Code:
    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
    App.newDoc:65:Console undefined:Exec

    J’ai l’impression que cela vient des paramètres d’Acrobat Reader. Penses-tu que cela peut être lié à la version DC?
    Je recherche dans les paramètres mais je ne trouve pas de paramètre qui bloque l’accès privilégié.

    en réponse à : Modification de pdf #65900
    Pradow
    Membre

    Salut, Travailler sur plusieurs documents pdf à la fois n’est pas évident si tu veux automatiser quelque chose au sein même d’Acrobat. Il te faudrait faire un script en externe par exemple, un script Python ferait l’affaire. Tu t’y connais un peu en Python? Si oui, tu peux regarder ce que te proposent les bibliothèques PDF. Typiquement remplacer un champ par un autre ne doit pas être trop difficile je pense, même si je n’ai pas de quoi faire des tests sous les yeux.

    Pradow
    Membre

    Rebonjour, j’ai enfin eu mes droits d’administration, bizarrement je ne parviens pas à savoir où se trouvent les scripts d’application chez Nuance, mais rien de très grave si je les lis sur Adobe Acrobat Reader …
    Bon, et j’ai inscrit le code suivant dans un fichier Config.js dans les scripts d’application d’Acrobat Reader:

    Code:
    trustedNewDoc = app.trustedFunction( function (nWidth, nHeight)

    {

        // Additional code may appear above

        app.beginPriv();    // Explicitly raise privilege

        app.newDoc( nWidth, nHeight );

        app.endPriv();

        // Additional code may appear below.

    })

    La fonction est tout a fait reconnue, mais lorsque dans la console j’écris :

    Code:
    trustedNewDoc(200,200)

    Celle-ci me renvoie :

    Code:
    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.App.newDoc:65:Console undefined:Exec

    Y a t-il encore des autorisations que je n’ai pas? Comment les activer?

    Pradow
    Membre

    Ah oui bien vu, merci beaucoup, j’aurais pu tourner en rond pendant des heures  :Smiley08: :Smiley08:
    Niveau utilisateur rien n’est décidé encore, mais il y a de fortes chances que ce soit Acrobat Reader.
    Bon je t’avoue que j’avais un poil la flemme d’aller demander les droits d’administrateur pour ajouter des javascripts dans App, mais il va bien falloir :D

    Pradow
    Membre

    Merci pour ta réponse.
    Malheureusement même quand je lance l’ensemble du script dans la console, celle-ci me répond :

    Code:
    TypeError: myTrustedSpecialTaskFunc is not a function

    Alors il est possible que le contexte ne soit pas suffisamment privilégié et qu’il faut absolument que je crée un script d’application.
    Pour nuance pdf, cela se passe comme pour Acrobat, il y a un dossier Javascripts dans lequel poser ses documents. Il existe deux dossiers de ce type : un en passant par C/users, qui lance des scripts spécifiques à l’utilisateur, l’autre en passant par C/program files, qui sont directement associés à l’application. Pour le moment j’ai pu tester le premier cas parce qu’l n’obligeait pas les droits d’administration, j’ai bien pu tester que le script était lu, malheureusement il ne permettait toujours pas l’exécution de mon script. Il faudra que je teste dans l’autre dossier en demandant les droits d’administrateur à l’assistance informatique de ma société.
    Encore merci pour votre réponse, je te tiens au courant en cas d’avancement.

    Pradow
    Membre

    Salut, ce que je ferais à ta place :

    Mets des radio buttons à la place de checkbox, c’est peut-être moins esthétique mais cela correspondra mieux à ton besoin.
    Si vraiment tu veux tes checkbox, j’a une solution un peu imparfaite mais qui fonctionnera :
    sur chaque bouton, tu mets un évènement “bouton relâché” –> script JS

    Code:
    var cases_desactivees = []
    //On regarde pour chaque case si elle est activée ou non
    for (k=5;k<=8;k++) {  if (this.getField("C"+k).value == "Off") {cases_desactivees.push("C"+k)}}if (cases_desactivees.length !=4){ // Cas où il y a une case activée, on désactive toutes les autres cases
      for (elem in cases_desactivees) {      this.getField(elem).readonly = True; //Eventuellement si tu trouves ça plus joli, tu peux faire this.getField(elem).display = 1 pour cacher toutes les cases non activées
      }
    }else { //Cas où toutes les cases sont désactivées  for (elem in cases_desactivees) {      this.getField(elem).readonly = False; //this.getField(elem).display = 0
      }}

    Donc là, on empêche l’utilisateur de remplir deux checkbox.
    Pour obtenir ta somme, ça va être un peu embêtant mais voila ce que tu peux ajouter, le mieux ce serait à l’intérieur de la boucle for du début, tu ajoutes les code suivant après le if :

    Code:
    else {  somme = 0
      if (k==5) {      somme+=100+Number.parseInt(this.getField(“1proba”))+16+Number.parseInt(this.getField(“ttproba”))  }  if (k==6) {      somme+=50+Number.parseInt(this.getField(“1produit”))+16+Number.parseInt(this.getField(“ttprod”))  }  if (k==7) {      //Remplir avec le calcul de la somme
      }  if (k==8) {      //Idem
      }  this.getField(“cotise”).value = somme;
    }

    Dis-moi si ça t’a aidé, si tu veux des précisions.

Affichage de 23 réponses de 1 à 23 (sur un total de 23)