Donnez vie à vos documents numériques !
 

leludo

Toutes mes réponses sur les forums

Affichage de 11 réponses de 1 à 11 (sur un total de 11)
  • Auteur
    Réponses
  • leludo
    Membre

    C’est un bug, cette fenêtre devrait proposer une liste de commandes.
    Ceci étant, ce n’est pas grave car la fonction “Enregistrer” n’est pas accessible depuis les champs de formulaire.
    On ne peut que “Enregistrer sous”, et le plus fiable est d’utiliser la commande JavaScript car “Exécuter une commande de menu” dépend de l’interface du logiciel.
    L’interface d’Acrobat pourrait changer, et il n’y a pas qu’Acrobat pour remplir des formulaires PDF.

    app.execMenuItem(“SaveAs”);

    Merci ; je vais regarder cela de plus près

    – Ne jamais reprendre un vieux document trouvé sur un forum, fait par on ne sait qui, avec on ne sait quel logiciel et qui contient des dizaines de commentaires inutiles. (Salut Alex !  :Smiley08: )
    – N’utiliser que les 14 polices standard dans les champs de formulaire, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-14-polices-standard-du-format-pdf/
    – Si la fonction “Optimiser PDF” ne permet pas de supprimer les polices, comme c’est le cas pour ce formulaire, le plus simple est de créer un nouveau document PDF vierge, et d’y copier-coller les champs et les éléments graphiques.

    :Smiley15:

    D’accord ; le fichier pris sur un forum a été pris sur ce forum que je parcours en long, en large et en travers.
    Pour les polices, je ne savais pas.
    Je vais donc créer un nouveau document pdf vierge ; depuis lelien, j’ai téléchargé les abracadabra Tools mais la commande “nouveau fichier ” n’est pas présente contrairement à ce qui est inscrit dans la page internet

    Merci encore

    leludo
    Membre

    :tutut:
    Il y a beaucoup plus simple quand on utilise Acrobat, voir : https://abracadabrapdf.net/forum/index.php/topic,2974.msg16849.html#msg16849

    Merci ; je ne connaissais pas le lien : je mettrai sur Framadrop car je connais bien Framasoft

    leludo
    Membre

    Bonsoir à tous
    Je m’y suis remis et je suis parvenu à faire des trucs qui me conviennent ; ce n’est sans doute pas “propre” mais cela “semble fonctionner” !

    Je vous joins le fichier mais il ne peut pas être hébergé ici car trop lourd, je le mets donc sur “ci-joint.com”.  –> https://www.cjoint.com/c/JAbt0Qpt78U
    J’ai quelques questions toutefois

    • j’ai abandonné dans initialisation(), le code Case/Break que je voulais mettre en place ; cela ne fonctionnait pas.
    • le fichier est très lourd (4 Mo), comment faire pour diminuer son poids sachant que 95 % du poids du fichier  est occupé par les “polices” ! (en comparaison, le pdf créé par l’un d’entre vous -> les gourmandises fait x pages pour 2-3 mo ! donc j’ai un gros souci avec mon fichier (voir capture d’écran)
    • j’ai un souci : je veux un bouton “enregistrer” mais dans les propriétés du champs créé, la fonction “utiliser une commande “est grise/vierge ; je ne peux pas créer “exécuter une commande de menus” !
    • je suis ouvert à toutes remarques/critiques donc cela est bienvenue.
    • [/list]Pour info, j’ai presque fini le fichier (sauf activité 3 & 4)

      Encore merci.

    en réponse à : Effacer des pointillés #66673
    leludo
    Membre

    Bonjour
    Merci pour le bout de code et l’explication qui va avec
    Je m’en suis servi
    Ludovic P.

    leludo
    Membre

    Bonsoir
    Bon encore plusieurs à essayer de faire qqchose qui fonctionne et ….. pas terrible

    je parviens grâce à votre aide à faire les 3 ou 4 niveaux de listes déroulantes ; j’ai mis cela dans un bloc que j’appelle “activité 1”
    etant donné que j’ai 3 autres actvités appelées activite 2-3-4,j’ai tenté le copier-coller et là, cela ne fonctionne pas (je m’en doutais)

    en lisant le scipt “fille”, petite fille, etc, on voit bien que  le sélecteur s’appelle ld avec un chiffre et dès lors, un copier coller ne fonctionne pas

    de plus, j’ai abandonné l’idée dans Initialisation (), de faire des choix multiples avec case et break …. cela ne fonctionne pas

    je ne sais plus vers où chercher ? si vous avez des idées, je suis preneur

    je joins mon fichier dans l’état actuel de mes avancées
    merci à vous

    Ludovic P

    leludo
    Membre

    Bonsoir
    La nuit porte conseils
    J’ai réfléchi et n’ai pas travaillé de suite sur ordinateur

    Je vais donc abandonner les 4 niveaux de liste, et faire 3 niveaux qui dépendent de 3 boutons radios
    Par exemple (voir capture), en cliquant sur le btRadio2 cela “active” la “fonction” Init2 et affiche le seul contenu de la partie “transport”
    De plus, je réduis au maximum mon Init à la seule “activité. Par exemple, mon init1 contiendra uniquement les valeurs liées à la “gestion administration”, le init 2 uniquement “transport” etc.
    Comme je vais avoir 4 bloc , cela me donnera 12 inits
    donc j’ai étudié dans la fonction initialisation le contenu suivant (je début en javascript donc soyez indulgent)

    Vous en pensez quoi ? je vais dans le bon sens ou pas ? Merci encore

    Code:
    function Initialisation() {
      switch (this.getField(“btRadio”).value){
          // bloc Activité 1
            case 1:
            init1();
            break;
          case 2:
            init2();
            break;
          case 3:
            init3();
            break;
          //bloc Activité 2
          case 4:
            init4();
            break;
          case 5:
            init5();
            break;
          case 6:
            init6();
            break;
          //bloc Actvité 3
          case 7:
            init7();
            break;
          case 8:
            init8();
            break;
          case 9:
            init9();
            break;     
          //bloc Activité 4
          case 10:
            init10();
            break;
          case 11:
            init11();
            break;
          case 12:
            init12();
            break;       
      }     
    }
    leludo
    Membre

    Merci pour le conseil
    Je regarde cela encore et encore (encore 1 h à comprendre votre code, etc…)
    et je finis par perdre “mon latin”
    je vais me mettre en pause jusque demain car là, je fais n’importe quoi

    je repartirai à “zéro” avec 3 listes déroulantes : à partir du moment où Gestion administration ou Transport ou Logistique est activée via un bouton radio, il n’est pas opportun d’ajouter à nouveau cette information
    Je ferai dans un 1er temps seulement UNE activité puis après je réfléchirai à la reproduire 3 fois MAIS sans lien entre activité 1-2-3-4 (mon doc doit permettre la saisie de 4 activités)
    Mon problème à l’heure actuelle est de ne plus lier l’activité 1 à la 2-3-4 (le copier coller a tout collé est quand je complète le bloc 1, c’est le 2-3-4 qui sont mis à jour de manière identique)
    je joins une image (bidouillée) pour montre ce que je veux au final
    encore merci pour l’aide
    Ludovic P

    leludo
    Membre

    Bonjour
    Merci ; c’est toujours sympa de trouver de l’aide.

    Je regarde cela en détail mais rapidement…… Puisqu’il y a un bouton radio (c’est ce que je voulais au début puis j’avais abandonné l’idée), je n’ai plus besoin de 4 niveaux (mon niveau 1 ne doit plus exister du coup sinon, je peux prendre le bouton radio avec le choix 1 et modifier le niveau 1 ce qui n’est pas logique).
    Je vais réfléchir ce soir à un truc : avec ce que vous m’avez indiqué/réalisé, avez-vous tenu compte que l’activité 1 peut dépendre de “gestion administration” et activité 2 de “logistique” et encore l’activité 3 de “Gestion administration” et même l’activité 4 de “logistique” ?…. Si c’est le cas, je vais chercher à rendre cela possible ou bien, les ajouts de votre part ne permettent pas cela ?

    [Hors sujet] Je ne sais pas si j’ai été clair :) [/Hors sujet]

    Edit (après réflexion)

    J’ai 4 activités donc je dois faire “en initialisation”,  —> 4 tests imbriqués les uns dans les autres ?
    par exemple ;

    • en activité 1, je nomme mon groupe de boutons “btRadioActivite1”, en activité 2, je nomme mon groupe de boutons “btRadioActivité2”,etc.
    • je fais des boutons radios, soit 3 boutons radios dans le groupe “btRadioActivite1”, autant dans le groupe ““btRadioActivite2”” et cela donc pour les 4 activités donc 12 boutons radios
    • je fais autant de init que de boutons radio soit 12 init.
    • et….. cela devrait marcher
    • [/list]est-ce dans ce sens que je dois aller ?

      Edit 2 : (après 1h15 de travail/réflexion/analyse),

      j’ai modifié votre Initialisation pour mettre 3 init (du coup, j’ai fait un 3ème init)
      Mais je suis en pleine réflexion : je suis parti sur 4 niveau mais avec les boutons radios, je  n’ai besoin que de 3 niveaux (gestion adm, transport, logistique étant en bouton radio, cela n’a aucun sen que ce soit le 1er niveau !)
      est-il plus facile de revenir à 3 niveaux avec bouton radio ou bien, supprimer le bouton radio et conserver les 4 niveaux

      je débute…. vous l’aurez compris ;)

      mon bout de code est-il propre ? Merci

      Code:
      function Initialisation() {
      if (this.getField(“btRadio”).value==1) {
      init1();
      } else {if (this.getField(“btRadio”).value==2) {
      init2();
      } else {
      init3();
      }
      }
      }
      [/CODE]

      Encore merci
      Ludovic P.

    en réponse à : Publipostage PDF avec Excel #62024
    leludo
    Membre

    Bonjour et merci Bebarth

    J’ai apporté les modifications et tout fonctionne à merveille.

    Je n’ai pas de mérite car c’est des récupérations de bouts de code glanés sur ce forum ; c’est toutefois des heures de lecture passionnante.
    Merci pour l’aide.

    en réponse à : Publipostage PDF avec Excel #62022
    leludo
    Membre

    Bonsoir à tous
    J’ai parcouru avec attention ce post et je suis “presque” parvenu à mes fins
    j’arrive à obtenir un publipostage :)

    juste un” truc ” qui me chagrine
    je voudrai que les pdf générés se mettent dans le même dossier que le fichier pdf de base ou bien dans un autre dossier ?
    je ne sais pas comment faire ? (je ne veux pas que les noms de fichiers générés reprennent le nom du fichier support)

    Voici mon code -Merci à vous

    Code:
    // Initialisation
    var Chemin=this.path;
    var CheminSansExt=Chemin.substring(0,Chemin.length-4)
    // Importer l’unique PJ sans la nommer
    var p=this.getDataObject(this.dataObjects[0].name)
    var fichier=this.getDataObjectContents(p.name)
    var donnees=util.stringFromStream(fichier)
    // Séparation des rangées (saut de ligne)
    var rangees=donnees.split(“n”)
    // Séparation des colonnes (TAB)
    var colonnes=new Array();
    for (var i=1; i  colonnes=rangees.split(“;”);
      // Création d’un nouveau document
      var newDoc=app.newDoc();
      // Insertion de la/des page(s)
      newDoc.insertPages({cPath: Chemin});
      // Suppression de la première page générée à la création du document
      newDoc.deletePages(0);
      // remplissage des champs
      newDoc.getField(“nom”).value=colonnes[0];
      newDoc.getField(“prenom”).value=colonnes[1];
      newDoc.getField(“date”).value=colonnes[2];
      newDoc.getField(“login”).value=colonnes[3];
      // etc. Le nom du champ correspondant au numéro de la colonne (basée sur 0)
      //
                // Enregistrement “NomDuFichier (nom prenom).pdf”
                // Mon souci est ci-dessous car je veux que les pdf générés se mettent automatiquement dans le même dossier que le pdf qui sert de support !
                // mais sans avoir le nom du fichier original !
                //
                //newDoc.saveAs(“Epreuve_01_”+colonnes[0]+”_”+colonnes[1]+”.pdf”); <-- dossier de sauvegarde erroné car cela va dans un dossier datatemp
                //
                newDoc.saveAs(CheminSansExt+”_Epreuve_01_”+colonnes[0]+”_”+colonnes[1]+”.pdf”); // <-- fonctionne mais ajoute le nom du pdf original !
                // je voudrais ne pas avoir à préciser le dossier de destination et que les pdf générés se mettent au même endroit sans le nom du pdf original ! Possible ou pas ?
                //
     
      // Fermeture du fichier
      newDoc.closeDoc();
    }
    // Message d’alerte
    app.alert(rangees.length-1+” formulaires individuels ont été créés.”,2);
    leludo
    Membre

    Bonjour
    Merci pour la réponse
    J’ai regardé en détail le js du fichier joint….. J’ai du mal à tout comprendre…. :(
    J’ai modifié quelques noms de champs pour essayer de comprendre…. j’y arrive tout doucement.
    Par contre, je n’ai aucune idée de permettre à un bouton radio de “s’orienter vers une liste déroulante plutôt que une autre”…
    Je n’arrive même pas à concrétiser “ce vers quoi je dois m’orienter”.

    Cependant, avant de prendre connaissance de votre document/aide, j’ai continuer mon travail avec l’aide d’internet, de fichiers exemples

    J’arrive à peu près à ce que je souhaite (4 niveaux-> mere, fille , petite fille et arriere petite fille)

    Le document sera imprimé et sur ce document, il doit y avoir 4 activités (4 blocs de menus déroulants). J’ai fait un 1er bloc “bien” et j’ai fait copier-coller pour arriver à 4 blocs.
    Hors, (je m’en doutais), quand je choisis un menu du bloc 1…. cela se répercute sur le bloc 2.3.4… Comment faire pour “désolidariser” cela ?
    Il faut que l’utilisateur final, puisse compléter indépendamment les 4 bloc/activités …..

    Je ne vois pas du tout… Je sens que j’arrive au but mais ce n’est pas encore cela et pour le moment mon “”travail”” n’est pas exploitable

    merci d’avance pour vos conseils et aides

    Ludovic P.

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