Donnez vie à vos documents numériques !
 

bebarth

Toutes mes réponses sur les forums

Affichage de 99 réponses de 2,575 à 2,673 (sur un total de 3,358)
  • Auteur
    Réponses
  • en réponse à : Addition horaire PDF (Javascript) #63027
    bebarth
    Maître des clés

    bonsoir,
    regarde ce post :
    https://abracadabrapdf.net/forum/index.php/topic,3092.msg17935.html#msg17935
    et si tu ne comprends pas, partage un fichier en explicant exactement ce que tu souhaiterais faire.
    @+
    :bonjour:

    en réponse à : Traitement par lots #63682
    bebarth
    Maître des clés

    bonjour,
    Ce que je ferais, c’est créer une action composée de 2 actions « Réduire la taille du fichier » et « Enregistrer » avec option « optimisation PDF », puis lorsque tu lances l’action, tu choisis soit « Ajouter des fichiers » soit « Ajouter un dossier ».
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Si je comprend bien, c’est le document initial complet auquel tu rajoutes une couverture numérotée !
    Sur la couverture, il n’y a que les 2 zones de textes ???
    Effectivement, les syntaxes JavaScript d’Acrobat ne sont pas exactement celles que tu as utilisées.
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FJavaScript_API.htm
    J’essaye de regarder ça pour demain.
    @+
    :bonjour:

    en réponse à : Fractionnement doc et enregistrement avec nom spécifique #63642
    bebarth
    Maître des clés

    …le plus simple pour connaitre le chemin à indiquer :

    1. Tu places un fichier à l’endroit où tu veux enregistrer tes nouveaux fichiers avec les noms des communes
    2. Tu ouvres ce fichier avec Acrobat
    3. Tu ouvres la console (cmd J sur mac, ce doit être ctrl J sur PC)
    4. Tu tapes « this.path; » puis la touche enter du clavier numérique
    5. Le chemin du fichier s’affiche dans la console
    6. Tu copies ce chemin, sans le nom du fichier
    7. Dans le script, tu modifies cette ligne
    8. [/list]
      Code:
      newDoc.saveAs(repertoire+ville+ ».pdf »);

      en

      Code:
      newDoc.saveAs(« le chemin copié »+ville+ ».pdf »);
        …en mettant les guillemets.
    9. [/list]Normalement, si tu as les droits dans le répertoire, ça devrait fonctionner.
      @+
      :bonjour:

    en réponse à : Fractionnement doc et enregistrement avec nom spécifique #63640
    bebarth
    Maître des clés

    bonjour,
    Voici en pièce jointe le fichier action que je te propose.
    Ici, j’extrais la page avant de rechercher le mot COMMUNE puis les mots qui suivent pour composer le nom de la commune. Cela implique donc que l’on doit trouver le mot « COMMUNE » sur toutes les pages. Si ce n’est pas le cas il faudra réorganiser le script.
    Si tu n’as pas de sous à dépenser et que tu es prêt à te prendre un peu la tête, essaye cette action…
    Pour ma part, je me suis effectivement un peu « pris la tête », car à force de prendre des petits bouts de scripts à droite à gauche, on arrive à prendre des variables de mêmes noms et ça ne le fait pas… Mais bon, j’ai connu des prises de têtes bien plus compliquées !!!
    Tu me dis ce que tu en penses et si le mot « COMMUNE » n’est pas obligatoirement sur toutes les pages, on fera différemment.
    @+
    :bonjour:

    en réponse à : Fractionnement doc et enregistrement avec nom spécifique #63637
    bebarth
    Maître des clés

    bonjour,
    A mon avis c’est faisable, mais ça demande un peu de boulot !
    A ce que je comprend les noms de communes ne sont pas des champs.
    Sur la même ligne de texte que celui du nom de la commune, peut-il y avoir d’autres textes ???? en gros, comment savoir si le nom de commune comporte un ou plusieurs mots ???
    J’essaie de voir ça lundi.
    Bon weekend.
    @+
    :bonjour:

    en réponse à : rafraichissement de calcul JS #63634
    bebarth
    Maître des clés

    bonjour,
    Le propre du bouton radio est de pouvoir lui attribuer plusieurs valeurs selon le bouton coché, ce qui évite d’avoir plusieurs variables…
    Essaye d’adapter ce script de calcul (j’espère ne m’être pas trompé dans les formules) :

    Code:
    var a1 = this.getField(« rang »).value;
    var tx = this.getField(« taux »).value;
    var bt = this.getField(« bouton »).value;
    switch (bt) {
        case « boutonGauche »:
        if (a1 >> 1) {
            var res = a1*3.5;
        } else {
            var res = 3.5;
        }
        break;
        case « boutonDroit »:
        if (a1 >> 0) {
            var res = 250+(a1-2)*50;
        } else {
            var res = 250
        }
    }
    if (a1 == 0) var res = 0;
    this.event.target.value = res * tx;

    Pour ma part, je ne suis pas professeur de JavaScript, mais je ne suis pas favorable à supprimer le « this. » même si on ne travaille qu’avec un seul fichier ouvert et qu’il peut paraître inutile.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Si le document doit être ouvert plusieurs fois, il faudrait peut-être rajouter une ligne pour supprimer le script de document :

    Code:
    app.execMenuItem(« SaveAs »);
    this.removeScript(« monScript »); // « monScript » est le nom du script de document créé

    sinon, à chaque ouverture, on aura la fenêtre d’enregistrement sous…
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63612
    bebarth
    Maître des clés

    J’avais fait ce fichier dans un post précédent.
    Regarde si on pourrait l’adapter à ton problème.
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63605
    bebarth
    Maître des clés

    …oui, mais le formulaire généré pour envoyer au client est fait à partir d’Acrobat Pro ou d’Adobe Reader ?
    @+
    :bonjour:

    en réponse à : Interdire la modification après sauvegarde #63629
    bebarth
    Maître des clés

    Je viens de m’apercevoir que je t’ai dis une bêtise…
    en script de document, il faut écrire :

    Code:
    var ok = « OK »;

    sinon, plus de message !

    Lorsqu’on aplati les champs, ce ne sont plus des champs (donc plus modifiables). Les valeurs des champs sont assimilées à du texte.
    fait un essai et tu comprendras certainement mieux.
    @+
    :bonjour:

    en réponse à : Interdire la modification après sauvegarde #63626
    bebarth
    Maître des clés

    bonjour,
    Je te conseille déjà de faire des essais sur des copies de fichiers….
    Si tu enregistres et que ton fichier n’est pas aplati, tu auras ce message (cf. copie d’écran).
    Si OUI, les champs sont aplatis tu ne peux donc plus les modifier. Si NON tu peux encore les modifier.
    Lorsque les champs sont aplatis, il n’y a plus de message !
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63603
    bebarth
    Maître des clés

    bonjour,
    et quelle sera l’utilisation finale ? avec Adobe Reader ???
    @+
    :bonjour:

    en réponse à : Interdire la modification après sauvegarde #63623
    bebarth
    Maître des clés

    bonjour,
    Je ne sais pas ce que pensera Merlin sur le principe, mais si tu colles :

    Code:
    var ok = « pas OK »;

    en script de document, et ce script :

    Code:
    try {
        if (ok== »OK ») {
            var enreg = app.alert({
                cMsg: « u0041u0076u0065u007Au002Du0076u006Fu0075u0073u0020u0074u0065u0072u006Du0069u006Eu00E9u0020u0064u0065u0020u0072u0065u006Du0070u006Cu0069u0072u0020u006Cu0065u0020u0066u006Fu0072u006Du0075u006Cu0061u0069u0072u0065u0020u003Fu000Du0020u000Du0041u0054u0054u0045u004Eu0054u0049u004Fu004Eu000Du0020u000Du2022u0020u0053u0069u0020u004Fu0055u0049u0020u0076u006Fu0075u0073u0020u006Eu0065u0020u0070u006Fu0075u0072u0072u0065u007Au0020u0070u006Cu0075u0073u0020u006Cu0065u0020u006Du006Fu0064u0069u0066u0069u0065u0072u002Eu000Du2022u0020u0053u0069u0020u004Eu004Fu004Eu0020u0076u006Fu0075u0073u0020u0070u006Fu0075u0072u0072u0065u007Au0020u006Cu0065u0020u006Du006Fu0064u0069u0066u0069u0065u0072u0020u0075u006Cu0074u00E9u0072u0069u0065u0075u0072u0065u006Du0065u006Eu0074u002E »,
                cTitle: « Formulaire rempli »,
                nIcon: 2, nType: 2
                });
                if (enreg==4) {
                this.flattenPages();
                this.removeScript(« ok »);
                this.addScript(« ok », « var ok = « pas OK »; »);
                }
            }
        } catch(e) {}

    en script d’action, cela devrait correspondre à ce que tu veux faire tout en permettant l’enregistrement si le formulaire n’est pas définitivement complété !
    Pour commentaires…
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63601
    bebarth
    Maître des clés

    …pas mieux !!!
    Maintenant que tu sais comment on fait, lorsqu’on indique les 2 paramètres on peut simplifier l’expression par :
    this.deletePages(5,7);
    this.deletePages(1,3);
    On est obligé de spécifier nStart ou nEnd que lorsqu’on indique un seul paramètre.
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63592
    bebarth
    Maître des clés

    bonjour,
    Non, impossible !
    app.newDoc() et saveAs() ne peuvent être exécutés avec un script de bouton.
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63589
    bebarth
    Maître des clés

    …et voilà !
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63587
    bebarth
    Maître des clés

    …et quelles sont ces pages imposées ?
    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63585
    bebarth
    Maître des clés

    bonjour,
    autant j’avais cru comprendre :

    Exemple j’ai 40 pages mais je veux enregistrer de la 5 à la 10 par exemple.

    …et c’est ce que fait l’action que je t’ai proposé, autant que je n’ai absolument rien compris de ta dernière explication !  :Euuuh:
    C’est certainement très clair quand on baigne dedans, c’est pour cela que je préfère que l’on partage un fichier exemple. C’est souvent plus compréhensible.
    @+
    :bonjour:

    en réponse à : Conditions sur un champ texte #63464
    bebarth
    Maître des clés

    …attention à ne pas mettre d’espace(s) dans les noms de champs lorsqu’on utilise le JavaScript !
    Y’en a qu’ont essayé, ils ont eu des problèmes !  :geek:

    @+
    :bonjour:

    en réponse à : Conditions sur un champ texte #63462
    bebarth
    Maître des clés

    bonjour,
    A mettre en script de calcul :

    Code:
    var boutonRadio=this.getField(« RADIO1 »).value;
    var totalOption=this.getField(« total option »).value;
    switch (boutonRadio) {
    case 2 :
    var remise=5;
    break;
    case 3 :
    var remise=10;
    break;
    case 4 :
    var remise=15;
    break;
    default:
    var remise=0;
    }
    this.event.target.value= totalOption-(totalOption*remise/100);

    @+
    :bonjour:

    en réponse à : Enregistrement partiel d’un document #63583
    bebarth
    Maître des clés

    bonjour,
    Voici ma proposition qui est une action à importer (double clique sur le fichier .sequ) puis à lancer.
    Le fichier des pages extraites est enregistré dans le même répertoire.
    @+
    :bonjour:

    en réponse à : script de validation personnalisée #63580
    bebarth
    Maître des clés

    …du coup, en script de champ désactiver, on pourrait ajouter :

    Code:
    if (this.event.value== » » || this.event.value==null) {
    app.alert({cMsg: »Vous devez obligatoirement entrer un montant. », nIcon:2});
    this.getField(« TTC »).setFocus();
    };

    pour ne pas laisser la cellule vide !
    @+
    :bonjour:

    en réponse à : script de validation personnalisée #63579
    bebarth
    Maître des clés

    OK ! J’allais proposer de mettre le script en « champ désactivé ».

    Code:
    var moyenne= this.event.value/(this.getField(« stagiaires »).value+ this.getField(« formateurs »).value);
    if (moyenne > 12) {
    app.alert({cMsg: »Le montant indiqué est supérieur au maximum autorisé de 12 €/personne. », nIcon:2});
    this.event.target.value=0;
    this.getField(« TTC »).setFocus();
    };

    @+
    :bonjour:

    en réponse à : script de validation personnalisée #63576
    bebarth
    Maître des clés

    ??? pas de message pour moi !!!  :Euuuh:

    en réponse à : script de validation personnalisée #63574
    bebarth
    Maître des clés

    ici le curseur retourne dans le champ, donc si l’on indique encore une mauvaise valeur on aura toujours le message d’alerte !
    @+
    :bonjour:

    en réponse à : script de validation personnalisée #63572
    bebarth
    Maître des clés

    bonjour,
    Voici ma proposition :

    Code:
    var moyenne= this.event.value/(this.getField(« stagiaires »).value+ this.getField(« formateurs »).value);
    if (moyenne > 12) {
    app.alert({cMsg: »Le montant indiqué est supérieur au maximum autorisé de 12 €/personne. », nIcon:2});
    this.getField(« TTC »).setFocus();
    };

    this.getField(« TTC »).setFocus() repositionne le curseur dans le champ si la moyenne est supérieure à 12.
    @+
    :bonjour:

    en réponse à : Formulaire Acrobat Pro #63568
    bebarth
    Maître des clés

    bonjour,
    Pour le script de Merlin, tu le colles là (cf. copie d’écran) et tu changes le nom du champ !
    …et là, d’un seul coup, tu viens de passer de « boulet » à « calot » !  :bravo:
    @+
    :bonjour:

    en réponse à : Formulaire Acrobat Pro #63565
    bebarth
    Maître des clés

    2 réponses simultanées…

    en réponse à : Formulaire Acrobat Pro #63564
    bebarth
    Maître des clés

    bonjour,
    La bonne nouvelle, c’est qu’il n’y a pas besoin de javascript pour faire ça. La mauvaise, c’est qu’à cause de ça tu va rester une bille… pour aujourd’hui !  :joker:
    Voici un fichier et une capture d’écran pour t’indiquer comment faire.
    Demande si tu n’as pas compris.
    @+
    :bonjour:

    en réponse à : Afficher / Masquer des pages dans un fichier #63544
    bebarth
    Maître des clés

    re-bonjour,
    Je viens de réaliser que j’ai oublier de te signaler que dans l’exemple précédent il y a un script de document pour vérifier à l’ouverture si des cases sont cochées ou non.
    Dans le nouveau fichier joint, plus de script de document et on vérifie toutes les cases à chaque action.
    Tu as le choix…
    @+
    :bonjour:

    en réponse à : Afficher / Masquer des pages dans un fichier #63542
    bebarth
    Maître des clés

    bonjour,
    Ce qui ne va pas dans tes scripts, c’est qu’on ne peut pas indiquer comme ça (avec nPage) où il faut insérer le « template » sans tenir compte des « slides » précédents !
    Ça marche avec le premier slide parce comme l’indique « premier » il n’y en a pas d’autre avant, mais pour les autres cela fonctionne uniquement si les slides précédents sont affichés.
    Dans le fichier que je te propose, chaque slide possède une variable qui indique s’il est affiché ou pas. Ensuite, pour insérer le template on aditionne les variables des slide déjà affichés.
    Il y avait déjà eu un post similaire à ce sujet : https://abracadabrapdf.net/forum/index.php/topic,3173.msg18509.html#msg18509
    J’espère que j’ai été clair. Tu me dis.
    @+
    :bonjour:

    en réponse à : Afficher / Masquer des pages dans un fichier #63536
    bebarth
    Maître des clés

    bonjour,
    C’est typiquement l’exemple où il serait bon de partager un fichier pour faciliter l’explication.
    Regarde cette page :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_spawnPageFromTemplatebc-105&rhtocid=_6_1_8_23_1_104
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Dans les informations du document, tu as la possibilité de choisir « Modèle » ou « Verrouillé ».
    « Modèle » enregistrera automatiquement ton fichier en tant que copie dans le même répertoire (avec  ajout de « copie » dans le nom du fichier).
    Avec « Verrouillé » tu auras un avertissement et on te proposera d’enregistrer ton fichier sous…
    Sinon, Alex avait proposé une solution très bien pensée (script d’action) dans ce post avec un avertissement personnalisable : https://abracadabrapdf.net/forum/index.php?topic=3232.0
    @+
    :bonjour:

    en réponse à : Afficher / Masquer des pages dans un fichier #63532
    bebarth
    Maître des clés

    re-bonjour,
    Je n’avais pas regarder la copie d’écran et apparemment les cases à cocher sont bien en page 1… mais bon, maintenant tu sauras comment aller sur une autre page en javascript !
    Ce n’est peut-être pas très « prudent » de laisser un numéro de téléphone sur un post !
    Si tu cherches de l’aide pour ton projet, pose tes problèmes sur différents posts du forum. Lorsque ça devient un peu plus compliqué, il est préférable de partager un fichier exemple. C’est généralement plus simple à comprendre.
    Tu peux également me contacter par Messagerie Personnelle si tu penses ne pas pouvoir/devoir partager des informations trop confidentielles. Je verrai ce que je peux faire pour t’aider.
    @+
    :bonjour:

    en réponse à : Afficher / Masquer des pages dans un fichier #63531
    bebarth
    Maître des clés

    bonjour,
    …et si les cases à cocher ne son pas en page 1 mais que tu ne connais pas le numéro de la page, avant le script tu ajoutes :

    Code:
    var pg = this.pageNum;

    et après le script :

    Code:
    this.pageNum = pg;

    @+
    :bonjour:

    en réponse à : Relier des formulaires #63487
    bebarth
    Maître des clés

    Ne pas pouvoir copier des données, c’est un peu le but des fichiers protégés ! :mur:
    Sinon ils ne le sont pas…
    @+
    :bonjour:

    bebarth
    Maître des clés

    re-bonjour,
    Voici ma version avec de vrais boutons radio. Ce qui change dans ce cas avec les boutons radio c’est qu’il n’y a pas besoin de conditions puisqu’un seul peut être coché !
    Dans cette version, lorsque l’on change de bouton, seule la case indiquée est cochée alors qu’avec la version de Merlin les cases cochées se cumulent… mais c’est peut-être le but recherché.
    Par contre, si on change l’état d’une des cases à coché, le bouton radio ne change pas (tous pourraient redevenir non cochés).
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Pour cocher une case ou un bouton par défaut, il y a juste une case à cocher. Pour la suite, je pense qu’il va valloir quand même y passer…
    Dans tes instructions : « …est coché par défaut mais modifiable », cela signifie que si l’on modifie l’état de la case CC, l’état du bouton radio BR change aussi ou reste coché ???
    @+
    :bonjour:

    en réponse à : Relier des formulaires #63483
    bebarth
    Maître des clés

    Pour moi, « …from script embedded within the document » signifie que le script doit être incorporé dans le document, donc pas d’un document à un autre ! Ou me trompè-je ? (autant la langue française est belle, autant là il y a matière à discussion).
    @+
    :bonjour:

    en réponse à : Scripts ne s’exécutent pas #63501
    bebarth
    Maître des clés

    bonjour,
    Pareil !!! le nombre d’heures que j’ai pu passer à cause d’une instruction male écrite…
    Lorsqu’on débute, écrire en javascript directement dans Acrobat n’est pas ce qui est le plus évident, surtout quand on commence à enchaîner les conditions…
    Je conseil d’utiliser un éditeur qui signale les erreurs de syntaxes, puis de copier/coller dans Acrobat. Moi j’utilise Dreamweaver parce que j’ai une suite Adobe, mais il y en a certainement d’autres gratuits qui font ça aussi bien. Je pense que Merlin peut nous en conseiller (Mac & PC).
    @+
    :bonjour:

    en réponse à : Relier des formulaires #63481
    bebarth
    Maître des clés

    bonjour,
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_buttonSetIconbc-6&rhtocid=_6_1_8_31_2_5
    Ici la note qui indique que buttonSetIcon n’est permis qu’à l’intérieur d’un document ! Pourquoi ???
    @+
    :bonjour:

    en réponse à : Scripts ne s’exécutent pas #63496
    bebarth
    Maître des clés

    bonjour,
    …essaye avec this.pageNum !
    @+
    :bonjour:

    en réponse à : Relier des formulaires #63478
    bebarth
    Maître des clés

    bonjour,
    Je n’arrive pas à « copier » l’icone d’un fichier à l’autre (alors que je ne vois pas de restriction & cf. fichier swap…), j’importe donc la page, puis je vais chercher l’icone et enfin je supprime la page importée.
    Attention :

    1. « this.disclosed = true; » n’est aps une fonction en script de document, sinon if faut appeler cette fonction.
    2. ici, les champs du fichier « Fichier_LIER » ont été renommés pour ne pas avoir les mêmes noms que ceux des champs importés
    3. [/list]Tu me dis si ça te vas !

      Merlin,
      Vois-tu une explication sur le fait que je n’arrive pas à aller chercher directement l’icone dans l’autre fichier ?

      @+
      :bonjour:

    en réponse à : Conditions sur un champ texte #63459
    bebarth
    Maître des clés

    …j’ai oublié de mettre le bouton radio en lecture seule !
    @+
    :bonjour:

    en réponse à : Relier des formulaires #63477
    bebarth
    Maître des clés

    bonjour,
    A première vue je ne pense pas que ce soit réalisable, mais je vais regarder car je n’ai jamais fait ça !
    si l’image a un nom « Image-2 » c’est une pièce jointe ?
    @+
    :bonjour:

    en réponse à : Conditions sur un champ texte #63458
    bebarth
    Maître des clés

    bonjour,
    pourquoi 4 noms de bouton radio ? un seul suffit avec des valeurs différentes puisqu’il ne peut y avoir qu’une seule condition requise…
    J’ai ajouté un script de touches personnalisé pour être sur de ne rentrer que des chiffres entiers !
    @+
    :bonjour:

    en réponse à : Relier des formulaires #63475
    bebarth
    Maître des clés

    Après avoir lu la page indiquée par Merlin, voici pour t’aider…
    Pour charger l’action, tu double-cliques le fichier .sequ
    Tu pourras ensuite regarder le script et voir si tu peux l’adapter !
    @+
    :bonjour:

    en réponse à : Relier des formulaires #63471
    bebarth
    Maître des clés

    bonjour,
    Premièrement, Il faut que tes fichiers 1 & 2 possèdent un script de document :

    Code:
    this.disclosed = true;

    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_properties.htm%23TOC_disclosedbc-12&rhtocid=_6_1_8_23_0_11
    Ensuite, pour des raisons de sécurité, le script ci-dessous ne sera réalisable qu’à partir d’une action :

    Code:
    var Chemin = this.path;
    var Dossier = Chemin.substring(0,Chemin.length-this.documentFileName.length);
    var otherDoc = app.openDoc({
    cPath: Dossier+ »Fichier_1.pdf »,
    });
    var champA= otherDoc.getField(« A »).value;
    otherDoc.closeDoc();
    var otherDoc = app.openDoc({
    cPath: Dossier+ »Fichier_2.pdf »,
    });
    var champB= otherDoc.getField(« B »).value;
    otherDoc.closeDoc();
    this.getField(« C »).value= champA+champB;

    …script à adapter, of course !!!
    Dans ce script, tous les fichiers sont dans le même répertoire.
    @+
    :bonjour:

    en réponse à : Imprimer un formulaire sans les valeurs par défaut #63429
    bebarth
    Maître des clés

    …il manque un else !

    Code:
    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == « text ») && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.textColor = color.white;
        } else {
            oFld.textColor = color.black;
        }
    }


    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63406
    bebarth
    Maître des clés

    bonjour,
    de tête, comme ça, je ne pense pas que l’on puisse récupérer le script d’un champ afin de le modifier !
    Mais vu que l’on récupère et affiche les valeurs des formulaires, il ne devrait pas y avoir besoin de calculs.  :doute:
    peut-être je n’ai pas compris quelque chose !
    @+
    :bonjour:

    en réponse à : Imprimer un formulaire sans les valeurs par défaut #63425
    bebarth
    Maître des clés

    bonjour,
    personnellement je ne pense jamais à utiliser les scripts des actions du document !  :bravo:
    J’aurais fait une usine à gaz pour arriver à ce résultat !!!
    Si les champs ont un fond, il faudra utiliser « oFld.textColor = color.transparent » plutôt que « oFld.textColor = color.white » !
    Et si les textes ont des couleurs différentes, il faudra stocker les stocker dans une table avant de les récupérer.
    Je dis ça au cas ou car cela m’arrive fréquemment d’avoir des fonds de champs et des couleurs de textes différents mais on ne m’a jamais demandé de cacher les valeurs à l’impression…

    @+
    :bonjour:

    en réponse à : Calcul de la moyenne des cellules non vides #63449
    bebarth
    Maître des clés

    bonjour,
    …et merci pour tes remerciements que je réitère moi-même à Merlin vu le nombre d’heures qu’il consacre à son forum !  :bravo:
    Je dis toujours que lorsque l’on donne ce n’est pas pour recevoir, mais ça fait quand même plaisir de recevoir de temps en temps…
    Certaines fois on a aucun retour alors que l’on s’est creusé la tête pour trouvé une solution. Même pas : « ça marche pas ! » ou « ça marche ! ».

    En ce qui concerne la duplication des champs, je te conseille de lire cette page :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/
    Tu comprendras certainement mieux l’indexation des champs et la facilité des calculs sur ces champs dupliqués.
    Dans ton cas, il faut donner des valeurs d’exportation à chaque élément de la première liste et cocher « Valider la valeur sélectionnée immédiatement ». Ensuite il n’y a plus qu’à dupliquer….
    @+
    :bonjour:

    en réponse à : Calcul de la moyenne des cellules non vides #63444
    bebarth
    Maître des clés

    …voici !
    j’ai mis le champ « moyenne » sur la première page.
    Regarde un peu la différence avec ton fichier original.
    j’espère que tu comprendras sinon dis-moi, j’expliquerai !
    @+
    :bonjour:

    en réponse à : Imprimer un formulaire sans les valeurs par défaut #63423
    bebarth
    Maître des clés

    bonjour,

    Code:
    //pour passer le texte en blanc
    this.getField(« myField »).textColor = color.white;
    //pour passer le texte en noir
    this.getField(« myField »).textColor = color.black;

    Pour plus d’informations sur les couleurs :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2Fcolor_properties.htm
    @+
    :bonjour:

    en réponse à : Calcul de la moyenne des cellules non vides #63442
    bebarth
    Maître des clés

    bonjour,
    c’est effectivement possible en javascript, mais la façon de faire dépend un peu de comment sont identifiés les champs…
    Si tu avais un fichier exemple à partager on pourrait adapter le script !
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63404
    bebarth
    Maître des clés

    bonjour,
    on va commencer par ajouter un script de document à ton fichier formulaire original.
    Tu ouvres ce fichier puis la console Acrobat (« cmd j » sur Mac et je présume « ctrl j » sur PC).
    Dans la fenêtre de la console tu va taper (ou coller) ce code :

    Code:
    this.addScript(« Disclosed », « this.disclosed = true; »);

    puis la touche ENTREE (et non RETOUR LIGNE). Le script de document a bien été créé.
    Tu enregistres ton fichier original (ça c’est fait !).
    Tu fais une copie de ce fichier que tu renommes comme tu veux (le miens, c’était « Fusion de Formulaires.pdf »).
    Ensuite, outil : Traitement du document -> Modèles de page.
    Tu crées un modèle nommé « vide » (c’est le nom que j’ai donné dans mon script),-> Ajouter, …le template « vide » est créé, tu ferme la fenêtre.
    Retour à la console, tu tappes (ou colles) :

    Code:
    this.spawnPageFromTemplate(« vide », this.numPages, false, false);

    puis la touche ENTREE.
    Retour à la fenêtre de Modèles de page où tu vas cliquer sur l’oeil à gauche de manière à le faire disparaitre.
    Tu fermes la fenêtre et tu enregistres. C’est fini ! tu peux maintenant utiliser l’action avec tes formulaires…
    J’espère avoir été clair et ne rien avoir oublié !
    Tu me dis…
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63402
    bebarth
    Maître des clés

    Bonjour,
    Il faut créer le template du fichier à partir d’un fichier final et définitif !!! Sais-tu faire ça ???
    Sinon on pourra voir ça demain.
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63400
    bebarth
    Maître des clés

    …la suite.
    Tu essayes comme ça et on verra après si on peut adapter à tes besoins !
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63399
    bebarth
    Maître des clés

    bonjour,
    voici vite fait quelques copies d’écrans pour t’aider à démarrer :

    1. tu décompresses le fichier .zip
    2. tu double-cliques le fichier .sequ pour installer l’action (donc uniquement la première fois).
    3. tu lances le fichier « Fusion de Formulaires.pdf »
    4. tu lances l’action
    5. tu remplis les champs (ici « fichier 1 » et « fichier 2 » comme dans le répertoire, mais tu peux indiquer d’autres noms…)
    6. tu termine avec un champ vide
    7. c’est fini, les formulaires sont compilés en un seul
    8. [/list]@+
      :bonjour:

    en réponse à : MessageBox de confirmation #63413
    bebarth
    Maître des clés

    …j’ai toujours dis UN icone !
    Il est vrai que ce n’est pas très clair.
    @+
    :bonjour:

    en réponse à : MessageBox de confirmation #63411
    bebarth
    Maître des clés

    bonjour,

    Sur MacOS X c’est entre 0 , 1 et 2 qu’il n’y a pas de différence pour le paramètre nIcon.

    Petite correction : Sur MacOS X c’est entre 1 , 2 et 3 qu’il n’y a pas de différence pour le paramètre nIcon.
    La valeur 0 du paramètre donne une icône différente.
    Je viens de vérifier et je ne sais pas comment sont les autres icônes sur PC, ni pourquoi y a-t-il une différence Mac/PC ???
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63397
    bebarth
    Maître des clés

    Si tu veux regarder les copies d’ecran De ce post, c’est exactement le même principe :
    https://abracadabrapdf.net/forum/index.php?topic=3410.0
    Sinon je te ferai des copies d’ecran Plus tard !

    @+
    :bonjour:

    en réponse à : Insérer des pages à la suite #63298
    bebarth
    Maître des clés

    …et pourquoi 2 boutons ?
    @+
    :bonjour:

    en réponse à : MessageBox de confirmation #63408
    bebarth
    Maître des clés
    en réponse à : Fusionner deux formulaires identiques = Problemes #63395
    bebarth
    Maître des clés

    re-bonjour,
    moi je n’y connais pas grand chose en porte document alors j’ai créé une action avec un script qui (je crois) correspond à ce que tu voulais faire.
    Il faudra bien sur importer l’action la première fois puis on ouvre le fichier « Fusion de Formulaires » et on lance l’action.
    Ici ça fonctionne avec les 2 fichiers joints mais if faudra adapter le script en fonction du formulaire final !
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63390
    bebarth
    Maître des clés

    bonjour,
    si ça marche comme ça, c’est plus simple !!!
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63388
    bebarth
    Maître des clés

    Une action qui importerait chaque formulaire en indexant les champs qui n’auraien Donc plus les mêmes noms !
    Les noms des fichiers ont-ils une base commune ?
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63386
    bebarth
    Maître des clés

    je pense que comme ça il n’y a pas grand chose à faire… alors que peut-être avec un script !

    en réponse à : Insérer des pages à la suite #63295
    bebarth
    Maître des clés

    A mon avis lorsqu’on insère une page à partir d’un template, cela devient une page et n’a plus de lien avec le template (c’est clair ???  :doute: ).
    il faudrait donc vérifier par exemple le nom d’un champ de la dernière page et voir ce champ est également sur le template…
    @+
    :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63384
    bebarth
    Maître des clés

    …ça j’ai bien compris, mais comment procèdes-tu ???
    Tu ouvres un formulaire, puis avec le menu « Insérer des pages » tu importes l’autre ? ou avec un script ?
    Comment se nomment et où se trouvent ces formulaires ? dans le même répertoire ?
    Uniquement 2 formulaires à combiner ?
    Ça demande un peu plus de précision…
    @+
    :bonjour:

    en réponse à : Insérer des pages à la suite #63293
    bebarth
    Maître des clés

    bonjour,
    on a le droit de voir le fichier ?
    Sur le dernier que tu as posté il n’y a pas de bouton reset ni le template indiqué.

    1. 3 fois delete… https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_deletePagesbc-20&rhtocid=_6_1_8_23_1_19
    2. A mon avis tu devrais plutôt écrire :
      this.spawnPageFromTemplate(« signatairesentrant », this.numPages, false, false);
      Pourquoi nPage:16 si c’est pour insérer en dernière page ?
      https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_spawnPageFromTemplatebc-105&rhtocid=_6_1_8_23_1_104
    3. [/list]@+
      :bonjour:

    en réponse à : Fusionner deux formulaires identiques = Problemes #63382
    bebarth
    Maître des clés

    bonjour,
    comment les fusionnes-tu ? tu en importes un à la suite de l’autre… ou à partir d’un troisième document ?
    Il faudrait indexer les champs importés ! aucun champ ne reste commun ???
    @+
    :bonjour:

    en réponse à : Trier des pages sur un critere "texte" #63339
    bebarth
    Maître des clés

    bonjour,
    dans ce cas, tu supprimes les lignes :

    Code:
                //Créer un rectangle sur le mot trouvé
                var q = this.getPageNthWordQuads(p, i);
                …
                // Epaisseur des bords
                l.borderWidth = 2;

    @+
    :bonjour:

    en réponse à : Trier des pages sur un critere "texte" #63337
    bebarth
    Maître des clés

    bonsoir,
    pourquoi ne charges-tu pas l’action ??? juste un double clique sur le fichier .sequ puis tu la lances (cf. copies d’écrans).
    Je viens de chercher le mot « document » et extraire les pages dans l’api reference (779 pages) sans aucun problème en un peu plus de 5 minutes !!!
    @+
    :bonjour:

    en réponse à : Assistant d’action / lancement d’une action depuis un script #63370
    bebarth
    Maître des clés

    …j’ai encore un peu de mémoire !  :geek:

    en réponse à : Insérer des pages à la suite #63290
    bebarth
    Maître des clés

    bonjour,


    … je vais regarder cela.

    ??? je ne sais pas ce que tu vas regarder car tu ne m’as pas dis quels champs devaient être réinitialisés !


    Cependant, la signature reste alors que je voudrais l’enlever.

    Comment veux-tu l’enlever et comment reste-t-elle ??? Aurais-tu un fichier à partager ?

    …par contre, je ne vais pas être dispo aujourd’hui !!!
    bonne journée.
    @+
    :bonjour:

    en réponse à : Assistant d’action / lancement d’une action depuis un script #63367
    bebarth
    Maître des clés

    bonjour,
    Il me semble que tu as déjà eu une réponse il n’y a pas si longtemps que ça !  :Smiley03:
    https://abracadabrapdf.net/forum/index.php/topic,3345.msg19643.html#msg19643
    @+
    :bonjour:

    en réponse à : Insérer des pages à la suite #63288
    bebarth
    Maître des clés

    bonjour,
    quels sont les champs à ne pas réinitialiser ou ceux à réinitialiser, selon…
    @+
    :bonjour:

    en réponse à : Probleme avec Visible et hidden et du texte #63365
    bebarth
    Maître des clés

    bonjour,
    essaie plutôt comme ça :

    Code:
    switch (this.getField(« Text5 »).value) {
    case « Essai-1 »:
    this.getField(« Donnees-1 »).display = display.visible;
    this.getField(« Donnees-2 »).display = display.hidden;
    this.getField(« Donnees-3 »).display = display.hidden;
    this.getField(« Donnees-4 »).display = display.hidden;
    break;
    case « Essai-2 »:
    this.getField(« Donnees-1 »).display = display.hidden;
    this.getField(« Donnees-2 »).display = display.visible;
    this.getField(« Donnees-3 »).display = display.hidden;
    this.getField(« Donnees-4 »).display = display.hidden;
    break;
    case « Essai-3 »:
    this.getField(« Donnees-1 »).display = display.hidden;
    this.getField(« Donnees-2 »).display = display.hidden;
    this.getField(« Donnees-3 »).display = display.visible;
    this.getField(« Donnees-4 »).display = display.hidden;
    break;
    default:
    this.getField(« Donnees-1 »).display = display.hidden;
    this.getField(« Donnees-2 »).display = display.hidden;
    this.getField(« Donnees-3 »).display = display.hidden;
    this.getField(« Donnees-4 »).display = display.visible;
    }

    @+
    :bonjour:

    en réponse à : Trier des pages sur un critere "texte" #63335
    bebarth
    Maître des clés

    bonjour,
    voici donc une action que j’ai créé à partir de 2-3 scripts déjà réalisés (il reste peut être quelques variables inutiles…).
    Ici, pour accélérer le processus, je ne vérifie qu’une fois si le mot est présent sur la page, puis passe à la page suivante.
    J’ai fait quelques vérifications et cela fonctionne. J’espère n’avoir rien oublié, sinon merci de me signaler le/les problèmes(s).
    @+
    :bonjour:

    en réponse à : Trier des pages sur un critere "texte" #63332
    bebarth
    Maître des clés

    bonjour,
    je pense que je devrais avoir quelque chose pour toi !
    Je n’aurais pas le temps de regarder ce weekend, mais promis dès lundi.
    @+
    :bonjour:

    en réponse à : Trier des pages sur un critere "texte" #63330
    bebarth
    Maître des clés

    bonjour,
    Ce n’ai pas du « tout simple » mais j’ai déjà fait quelque chose comme ça…
    Même question que Merlin : au final tu veux des fichiers individuels ou un seul fichier final ?
    @+
    :bonjour:

    en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58296
    bebarth
    Maître des clés

    bonjour,
    si l’on crée le bouton sur Acrobat Pro avec une action « Envoyer un formulaire », ça fonctionne également sur iPhone/iPdad !
    Le souci c’est le javascript qui n’est pas totalement compris par ces téléphones et tablettes.
    @+
    :bonjour:

    en réponse à : Rajouter dynamiquement des parties de formulaires #63322
    bebarth
    Maître des clés

    Voici une proposition qui devrait te permettre de voir ce que l’on peut faire.
    J’espère que tu comprendra comment faire, sinon il faut te plonger dans ces 2 pages :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_addField1bc-2&rhtocid=_6_1_8_23_1_1
    et
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_properties.htm

    Je ne sais pas s’il est possible de récupérer d’un seul coup TOUTES les propriétés d’un champ. Peut-être Merlin peut nous dire…

    @+
    :bonjour:

    en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58289
    bebarth
    Maître des clés

    bonjour,
    Désolé mais je ne suis pas très au courant des problèmes rencontrés avec les tablettes… à par qu’il y a des soucis avec le javascript.
    @+
    :bonjour:

    en réponse à : Rajouter dynamiquement des parties de formulaires #63320
    bebarth
    Maître des clés

    bonjour Merlin,

    …dupliquer des rangées de champs ce n’est possible qu’avec LiveCycle Designer.

    …disons que c’est assez compliqué avec Acrobat Pro ! Mais on peux créer des champs et en déplacer d’autres.
    @+
    :bonjour:

    en réponse à : Rajouter dynamiquement des parties de formulaires #63318
    bebarth
    Maître des clés

    bonjour,
    Personnellement je n’ai pas bien compris !
    Tu veux rajouter des champs en décalant les autres ou une page de formulaire ?
    @+
    :bonjour:

    en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58287
    bebarth
    Maître des clés

    …je viens d’essayer et ça fonctionne.
    Ne pas oublier de sauvegarder avant d’envoyer si tu veux garder le document non aplati en local…
    @+
    :bonjour:

    en réponse à : Rendre le PDF non modifiable au moment de l’envoi par mail #58286
    bebarth
    Maître des clés

    bonjour,
    à mon avis il faut que ton bouton d’envoi exécute les 2 actions.
    D’abord l’envoi de la version non aplatie puis aplatir et renvoyer le formulaire:

    Code:
    this.mailDoc({
    bUI: false,
    cTo: « toto@free.fr »,
    cSubject: « Sujet du message »,
    cMsg: « Texte du message. »
    });
    this.flattenPages();
    this.mailDoc({
    bUI: false,
    cTo: « autretoto@free.fr »,
    cSubject: « Sujet du message »,
    cMsg: « Texte du message. »
    });
    closeDoc(true);

    …à tester !!!
    @+
    :bonjour:

    en réponse à : Insérer des pages à la suite #63285
    bebarth
    Maître des clés

    c’est normal, même nom de champ  -> mêmes valeurs !!!
    Il faut donc juste changer un false par un true…

    Code:
    this.spawnPageFromTemplate(« NomDuTemplate », this.numPages-4, true, false);

    @+
    :bonjour:

    en réponse à : Porte documents et formulaires dynamiques #63280
    bebarth
    Maître des clés

    bonjour,
    selon si l’on utilise Acrobat et que l’on a les bonnes autorisations d’accès, on peut avoir 2 fichiers distincts !
    dans l’exemple joint, les deux fichiers doivent être dans le même répertoire.
    Ne pas oublier « this.disclosed = true; » en script d’ouverture des fichiers.
    @+
    :bonjour:

    en réponse à : Insérer des pages à la suite #63282
    bebarth
    Maître des clés

    bonjour,
    il faut écrire :

    Code:
    this.spawnPageFromTemplate(« NomDuTemplate », this.numPages-4, false, false);

    @+
    :bonjour:

    en réponse à : Resultats case à cocher #63266
    bebarth
    Maître des clés

    bonjour,
    Ça ne fonctionnait pas dans ton fichier…
    Ici, j’ai aussi rajouté un calendrier pour le champ date !
    @+
    :bonjour:

    en réponse à : Resultats case à cocher #63265
    bebarth
    Maître des clés

    tu peux rajouter un calendrier si tu va voir sur cette page :
    http://www.formrouter.com/tools/index.html
    mais ça n’a rien à voir avec celui de Merlin !
    @+
    :bonjour:

    en réponse à : Resultats case à cocher #63263
    bebarth
    Maître des clés

    Où y a-t-il un calendrier dans ton fichier ?
    @+
    :bonjour:

    en réponse à : Resultats case à cocher #63261
    bebarth
    Maître des clés

    bonjour,
    si tu cherche sur le web tu devrais en trouver, mais le meilleur c’est quand même celui-ci :
    https://www.abracadabrapdf.net/utilitaires/utilitaires-pdf/magicdate-selecteur/
    @+
    :bonjour:

    en réponse à : Calcul d’âge #63270
    bebarth
    Maître des clés

    bonjour,
    il suffit juste de récupérer l’année pour chaque champ « date », et cela selon le format des champs, et de faire une soustraction !
    En gros, pour un format de date à la française, ça donnerait :

    Code:
    var dd1=this.getField(« champdate1 »).value;
    var annee1=dd1.slice(dd1.length-4);
    var dd2=this.getField(« champdate2 »).value;
    var annee2=dd2.slice(dd2.length-4);
    this.event.target.value=annee2-annee1;

    @+
    :bonjour:

    en réponse à : Resultats case à cocher #63258
    bebarth
    Maître des clés

    …et pour mieux comprendre qu’on prend le jour à la position « lejour » dans la table, on peut écrire la dernière ligne :

    Code:

    this.event.target.value=tableaujour[lejour];

    :bonjour:

Affichage de 99 réponses de 2,575 à 2,673 (sur un total de 3,358)