Donnez vie à vos documents numériques !
 

Imprimer un formulaire sans les valeurs par défaut

abracadabraPDF Forums PDF – Général Imprimer un formulaire sans les valeurs par défaut

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45805
    dragon8207
    Membre

    Bonjour,
    J’ai un formulaire pdf avec des champs dont j’ai indiqué des valeurs par défaut.
    Le souci c’est qu’à l’impression ces valeurs par défaut restent.
    Il y aurait-il un moyen d’imprimer le formulaire sans valeur par défaut (champs vides)?
    Merci,

Affichage de 16 réponses de 1 à 16 (sur un total de 16)
  • Auteur
    Réponses
  • #63419
    Merlin
    Maître des clés

    Bonjour.

    Selon les cas soit on peut réinitialiser les champs avant l’impression, soit on peut ajouter un script en action de document “sera imprimé” qui change la couleur des textes en blanc, et un autre qui le remet en noir en action “a été imprimé”.

    #63420
    dragon8207
    Membre

    Comme il y a des cases à cocher, je suppose qu’une réinitialisation des champs est plus cohérent.
    Néanmoins, s’il y a des champs qui sont remplis, cela risque de tout réinitialiser ? Une différenciation est-elle possible au niveau du document ?
    Merci de prendre le temps pour cette réponse.

    #63421
    Merlin
    Maître des clés

    Rien n’empêche de changer la couleur des cases-à-cocher.
    Et il n’est pas plus compliqué de modifier tous les champs que seulement certains.

    s’il y a des champs qui sont remplis, cela risque de tout réinitialiser ?

    Ce n’est pas un risque, c’est une certitude.  :Smiley03:

    L’autre problème que ça pose c’est si les champs utilisent l’option “Valeur par défaut”, auquel cas la réinitialisation affichera les valeurs par défaut.

    #63422
    dragon8207
    Membre

    Ok, c’est bien ce que je me disais.
    J’étais parti sur un script de document qui allait prendre la valeur de chaque champ, regarder si cela correspond à la valeur par défaut, et si c’était le cas, mettre du texte vide à la place genre “”.
    comment procède-t-on pour le passer les textes en blanc quand ils sont égaux à la valeur 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:

    #63424
    Merlin
    Maître des clés

    comment procède-t-on pour le passer les textes en blanc quand ils sont égaux à la valeur par défaut ?

    Seuls les champs textes et les listes ont une valeur par défaut, ça ne fonctionnera pas avec les boutons ou les cases-à-cocher par exemple. Il leur faudrait un autre script.

    Ce script ne concerne que les champs de type texte.
    À placer en action “sera imprimé” :

    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.textColor = color.
    white;
        }
    }

    À placer en action “a été imprimé” :

    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.textColor = color.
    black;
        }
    }

    #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:

    #63426
    Merlin
    Maître des clés

    il faudra utiliser “oFld.textColor = color.transparent” plutôt que “oFld.textColor = color.white”

    Ça ne fonctionnera pas : le texte ne peut pas être transparent.
    Seuls le contour et le fond des champs le peuvent.

    personnellement je ne pense jamais à utiliser les scripts des actions du document !
    J’aurais fait une usine à gaz pour arriver à ce résultat !!!

    Ça m’est arrivé aussi, et il n’y a pas si longtemps que ça…
    :geek:

    #63427
    dragon8207
    Membre

    ça marchhhheeeeeeeeee (je n’en doutais pas)
    Merci ! ;)

    #63428
    dragon8207
    Membre

    J’ai voulu rajouter une ligne :
    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.textColor = color.white;
        }{
                oFld.textColor = color.black;
        }
    }
    Pour spécifier le blanc uniquement sur les champs qui avaient leur valeur par défaut, mais je crois que n’ai pas compris toute la syntaxe du coup …

    #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:

    #63430
    dragon8207
    Membre

    idiot que je suis lol
    ça marche
    En tous les cas merci les gars, vous gérez.
    Du coup on peut le mettre en résolu ;)

    Arigato Gozaimasu !!!!!!!!!
    Suis content

    #63431
    Merlin
    Maître des clés

    J’ai voulu rajouter une ligne :

    Pour spécifier le blanc uniquement sur les champs qui avaient leur valeur par défaut

    Si les champs ont déjà le noir comme couleur de texte c’est inutile.
    Ça ne sert que si certains champs ont une couleur de texte ni noire ni blanche.
    :idee:

    #63432
    DavidFeder
    Participant

    Hello,

    Loin moi l’idée de faire le malin… Je me content de mettre ensemble les merveilles de code que je vois :)Pourquoi changer la couleur alors qu’on peut simplement remplacer la valeur par “”, comme ci-dessous?

    Code:
    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.value = “”;
        }
    }

    En fait j’avais aussi un problème: dans mon cas c’est pour le print, mais aussi pour enregistrer une version “non modifiable” du document.
    du coup, avec le code ci-dessous, si après avoir enregistré la version “read only” du document, l’utilisateur cliquait sur le champs, la valeur par défaut revenait (j’ai un autre script qui remet la valeur par défaut si le champ a été cliqué, puis finalement laissé vide…), du coup j’ai ajouté
    oFld.defaultValue= “”;
    le code pour remettre la valeur par défaut si après avoir cliqué, finalement on ne rentre pas de contenu:

    Code:
    if (event.target.value==””) {
        event.target.value = event.target.defaultValue;
    }

    et le code avant enregistrer version “read only”:

    Code:
    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.value = “”;
                oFld.defaultValue = “”;
        }
    }
    #63433
    DavidFeder
    Participant

    ok, fini de faire le mariole :)
    j’ai essayé de “condenser” mon code pour éviter de boucler 2x tous les champs en mettant le read-only et le nettoyage des valeurs par défaut comme ceci:

    Code:
    function finalize() {

    //DEFAULT TEXT IN FIELDS & READ ONLY
    for (var i=0; i    var oFld = this.getField(this.getNthFieldName(i));
        if((oFld.type == “text”) && (oFld.valueAsString == oFld.defaultValue)) {
                oFld.value = “”;
                oFld.defaultValue = “”;
        }
        oFld.readonly = true;
    }
    }

    mais ça ne fonctionne pas.
    Si je nettoie d’abord les valeurs par défaut, puis mets en read-only dans 2 fonctions séparées ça marche.
    Mais je suppose que c’est faire tourner la boucle pour rien, non?

    #63434
    bebarth
    Maître des clés

    bonsoir,
    Et si tu modifiais le paramètre “display” des champs dont la valeur correspond à la valeur par défaut :

    Code:
    for (var i=0; i    var oFld=this.getField(this.getNthFieldName(i));
        if(oFld.type==”text” && oFld.value==oFld.defaultValue) oFld.display=display.noPrint;
    }

    Après l’impression tu remets tous ces champs en “display.visible” !
    @+
    :bonjour:

Affichage de 16 réponses de 1 à 16 (sur un total de 16)
  • Vous devez être connecté pour répondre à ce sujet.